【发布时间】:2019-01-15 22:48:24
【问题描述】:
提取和重新附加单个文件会产生正确的结果,但是当涉及多个文件时,结果是第一个附件的副本,但带有文件名。 例如,如果我提取 fileA.doc、fileB.doc 和 fileC.doc,我将得到 fileA.doc、fileB.doc 和 fileC.doc,但文档中的内容将是 fileA.doc 的内容。文件名正确,但内容是第一个文档的内容,并且某些文件已损坏。 下面是相同的代码。
strRtFieldName(0) ="Body1"
strRtFieldName(1) ="Body2"
strRtFieldName(2) ="Body3"
strRtFieldName(3) ="Body4"
strRtFieldName(4) ="Body5"
strRtFieldName(5) ="Body6"
strRtFieldName(6) ="Body7"
strRtFieldName(7) ="Body8"
strRtFieldName(8) ="Body9"
strRtFieldName(9) ="Body0"
varAttachmentNames = Evaluate("@AttachmentNames", doc)
For i = 0 To UBound(varAttachmentNames)
' check for attachment in Rich Text fields
For k = 0 To 9
Set rtitem = doc.Getfirstitem(strRtFieldName(k))
If (object Is Nothing) Then
If Not rtitem Is Nothing Then
If (rtitem.Type = RICHTEXT) Then
Set object = rtitem.GetEmbeddedObject(varAttachmentNames(i))
End If
End If
End If
Next
If (object Is Nothing) Then
' check for attachment in document
Set object = doc.GetAttachment(varAttachmentNames(i))
End If
Next
如果您能指出代码有什么问题,将不胜感激。
【问题讨论】:
-
实际提取和重新附加的代码在哪里?另外:这里很难遵循您的逻辑,但可以肯定的是:当您的代码进入 For i 循环时,对象是 Nothing,因此 For k 循环中的 If 内的代码将执行;但是在 For i 循环的第二次迭代中,对象不会什么都不是,因此 For k 循环内的代码将不会执行。这似乎不太可能是正确的。
标签: lotus-notes lotusscript agent lotus-formula domino-designer-eclipse