我有一个正在查看的文档列表。我在视图内部还有一个按钮,可以在其中创建具有现有文档中值的新文档。对于这个新文档,我将使用不同的形式来创建新文档。我认为文档是按状态划分的。我也有对话框,可以为新文档设置batchNo。
所以,过程是这样的:
这是我创建新文档的代码。
Set doc = dc.GetFirstDocument()
While Not (doc Is Nothing)
If doc.PStatus(0) = "Active" Then
Set newdoc = New NotesDocument(db)
newdoc.Form = "WriteOff"
newdoc.WABatchNo = wDialogDoc.WBatchNo(0)
newdoc.WType = doc.PType(0)
newdoc.WSerialNo = doc.PSerialNo(0)
newdoc.ComputeWithForm(False,False)
newdoc.save(True,False)
End If
doc = dc.GetNextDocument(doc)
Wend
现在的问题是,如果我创建一个新文档,并且想从两个文档中获取价值,那么它不会插入到一个新文档中,而是插入到两个不同的新文档中。我该如何解决。任何建议或帮助,我感激不尽。谢谢!
答案 0 :(得分:1)
我编写LotusScript已有10多年了,所以我可能是错的。
Set doc = dc.GetFirstDocument()
Dim docCreated As Boolean 'flag a document was created
Dim i As Integer 'index for each document
docCreated = False
i = 0
While Not (doc Is Nothing)
If doc.PStatus(0) = "Active" Then
If Not docCreated Then 'only create a document for first doc
Set newdoc = New NotesDocument(db)
newdoc.Form = "WriteOff"
docCreated = True
End If
i = i + 1
newdoc.WABatchNo = wDialogDoc.WBatchNo(0)
' not sure about this part, but the idea is to set WType1 for first doc, WType2 for 2nd doc, and so on
Call newdoc.ReplaceItemValue("WType" & i, doc.PType(0))
Call newdoc.ReplaceItemValue("WSerialNo" & i, doc.PSerialNo(0))
End If
doc = dc.GetNextDocument(doc)
Wend
If docCreated Then
Call newdoc.ComputeWithForm(False,False)
Call newdoc.save(True,False)
End If