LotusScript - 多次提取和重新附加附件会导致第一个附件的副本和文件损坏
LotusScript - Multiple extraction and reattaching of attachments leads to copies of the first attachment and file corruption
单个文件的提取和重新附加会产生正确的结果,但当涉及多个文件时,结果是第一个附件的副本,但带有文件名的名称。
例如,如果我提取 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
如果您能指出代码的错误,我们将不胜感激。
查看 object
变量,当它被设置时,对 if
语句的影响。然后应该很明显 object 在第一个循环中什么都不是。因此后续循环将重复使用相同的附件。
我不确定为什么这是用 XPages 标记的。
单个文件的提取和重新附加会产生正确的结果,但当涉及多个文件时,结果是第一个附件的副本,但带有文件名的名称。 例如,如果我提取 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
如果您能指出代码的错误,我们将不胜感激。
查看 object
变量,当它被设置时,对 if
语句的影响。然后应该很明显 object 在第一个循环中什么都不是。因此后续循环将重复使用相同的附件。
我不确定为什么这是用 XPages 标记的。