2013-05-29 70 views
0

我的蓮花代理根據郵件的目的地分離文件並將它們放入不同的文件夾中。 其實,它的工作原理很好,但用的SendTo 代理蓮花GetItemValue SendTo,CC和BCC

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和!

我知道我可以通過repeatting 3倍aboves代碼做到這一點,但它不是理想的解決方案

+0

更新我的答案。 –

回答

0

回答這類問題最快捷的方法是選擇一個文件,並打開屬性。確保填寫相關字段。

您可以通過右鍵單擊文檔並選擇「文檔屬性」來完成此操作。

一旦你有了,你可以看到你正在尋找的相關領域。

在你的情況下,將是。

  • SENDTO
  • CopyTo從
  • BlindCopyTo用於

對於重複碼,把它放入一個SUB /功能與方法(字段名作爲字符串)。然後將「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 
+0

是的,他們是「SendTo」,「CopyTo」和「BlindCopyTo」。我們不能這樣做:ForAll elt通過蓮花腳本在[curdoc.GetItemValue(「SendTo」),curdoc.GetItemValue(「CopyTo」),curdoc.GetItemValue(「BlindCopyTo」)]?對不起,我是一個新手!謝謝。 – dsea

+0

這是相同的代碼。只是電子郵件不會總是有他們的CopyTo/BlindCopyTo。發送電子郵件給你自己,並填寫你的電子郵件地址的字段。 –

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 
+0

我可能會使用varAddresses = Evaluate(「@ Unique(@Trim(SendTo:CopyTo:BlindCopyTo))」,curdoc),但這是因爲我是一個懶惰的流浪漢。基本上它是相同的想法:使一個數組包含所有地址。 –