代理莲花GetItemValue SendTo,CC和BCC

时间:2013-05-29 13:27:43

标签: lotusscript

我的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次以上代码来实现,但这不是理想的解决方案

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

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

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

完成后,您可以看到您要查找的相关字段。

在你的情况下。

  • SENDTO
  • CopyTo从
  • BlindCopyTo用于

对于重复代码,使用方法(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