0

我的 Lotus 代理分离文件并根据邮件的目的地将它们放入不同的文件夹中。实际上,它运行良好,但使用 SendTo :

found = False
If IsArray(curdoc.GetItemValue("SendTo")) Then
    ForAll elt In curdoc.GetItemValue("SendTo")
        idxFolder = 0
        ForAll dest In destinations
            If InStr(1,CStr(elt),CStr(dest),5) <> 0 Then
                found = True
                Exit ForAll
            End If
            idxFolder = idxFolder + 1
        End ForAll
    End ForAll
    If found Then
        Exit ForAll
    End If
End If

我的问题:现在我希望它也适用于 CC 和 BCC 中的目的地!

我知道我可以通过重复上述代码 3 次来做到这一点,但这不是理想的解决方案

4

2 回答 2

1

您只需要构建一个包含所有值的数组:

Dim varAddresses as Variant
varAddresses = curdoc.GetItemValue("SendTo")
varAddresses = ArrayUnique( Fulltrim( ArrayAppend( varAdresses, curdoc.GetItemValue("CopyTo") ) ) )
varAddresses = ArrayUnique( Fulltrim( ArrayAppend( varAdresses, curdoc.GetItemValue("BlindCopyTo") ) ) )
Forall elt in varAddresses
  'Your code comes here
End Forall
于 2013-05-29T19:01:09.157 回答
0

回答这类问题的最快方法是选择一个文档并打开属性。确保填写相关字段。

您可以通过右键单击文档并选择“文档属性”来执行此操作。

一旦你有了它,你就可以看到你正在寻找的相关字段。

在你的情况下,那将是。

  • 发送至
  • 复制到
  • 盲复制到

至于重复的代码,用方法(fieldName as String)放入SUB/Function。然后将“SendTo”更改为 fieldName。

例子:

Function checkField (fieldName as String) as Boolean
    found = False 
    If IsArray(curdoc.GetItemValue(fieldName)) Then
        ForAll elt In curdoc.GetItemValue(fieldName)
            idxFolder = 0
            ForAll dest In destinations
                If InStr(1,CStr(elt),CStr(dest),5) <> 0 Then
                    found = True
                    Exit ForAll
                End If
                idxFolder = idxFolder + 1
            End ForAll
        End ForAll
    End If

    checkField = found


End Function
于 2013-05-29T13:55:14.677 回答