如何从刚刚保存的NotesUIDocument中获取字段值并显示在其他文档中
How to get field value from NotesUIDocument that just have been saved and display in other document
在此之前,我有 post 个关于我的问题的问题,但仍然没有答案。我会在这里再次尝试 post 提问关于我的问题。我将更新新代码并对其进行解释。在此之前我已经完成了对话框,但我被要求更改它,只需使用视图中的表单即可。
我的流程从打开一个表单开始,以设置新的批次信息。表单名称是 PCBatchInfo。在这种形式中,我有 4 个字段,即 BBatchNo、BInspector、BStart 和 BEnd。然后在这种形式下我有一个按钮。当我点击这个按钮时,它会执行三个过程:
- 创建新的批次信息并保存。这是当前打开的文档。我称之为 "dialogDoc".
- 然后,创建计算机文档的副本。在此副本中,它将替换我刚才创建的 BBatchNo。我将此副本文档称为 "newdoc",将原始文档称为 "doc"
- 之后,我创建新的报表文档并从计算机文档中复制值。然后我将从设置的批号中获取值,即 BInspector、BStart 和 BEnd 并插入到这份报告我称之为 "repdoc".
下面是我按钮中的 lotusscript
Set db = session.CurrentDatabase
Set uidoc = ws.CurrentDocument
Set dialogDoc = uidoc.Document
Set view = db.GetView("Computer")
Set doc = view.GetFirstDocument
If doc.PStatus(0) = "Lock" Then
Msgbox "Complete PC Inspection first!"
Exit Sub
Else
'--set new batch info--'
dialogDoc.Form = "PCBatchInfo"
Call uidoc.FieldSetText("SaveOptions", "1")
Call uidoc.Save
answer% = Messagebox("Please confirm", 4,"Batch Number")
If answer% = 6 Then
While Not (doc Is Nothing)
If doc.PStatus(0) = "Active" Then
'--create new copy document--'
Set newdoc = doc.CopyToDatabase (db)
newdoc.DocumentId = doc.UniversalID
newdoc.PBatchNo = dialogDoc.BBatchNo(0)
Call newdoc.Save(True, False)
'-- set new acceptance form --'
Set repdoc = New NotesDocument (db)
repdoc.Form = "EmpPCSpec"
repdoc.ABatchNo = doc.PBatchNo(0)
repdoc.AStatus = doc.PStatus(0)
repdoc.ATagNo = doc.PTagNo(0)
repdoc.AFStatus = doc.PFStatus(0)
repdoc.AInspector = dialogDoc.BInspector(0)
repdoc.AStart = dialogDoc.BStart(0)
repdoc.AEnd = dialogDoc.Bend(0)
Call repdoc.ReplaceItemValue("AStatus", "Incomplete")
Call repdoc.ComputeWithForm(False,False)
Call repdoc.save(True,False)
doc.PStatus = "Lock"
Call doc.ComputeWithForm(False,False)
Call doc.save(True,False)
End If
Set doc = view.GetNextDocument(doc)
Wend
End If
End If
所有这些过程我 运行 一键完成。所以当我 运行 这个按钮时,我成功地创建了新的批次信息,我可以创建文档的副本,我可以创建报告文档。
但是现在的问题是在复制文件时,没有显示BBatchNo。而在报告文件中,它没有显示我想要得到的BInspector、BStart和BEnd来自 PCBatchInfo 表格。该字段留空。我希望我的解释清楚我的问题。我感谢你们的任何帮助。谢谢!
更新问题
对于使用 PCBatchInfo 为新批次信息保存的所有信息,视图处于打开状态 (PCBatch)。如何获得此视图中的值?我只从 "Computer" 保存计算机文档的地方获得价值。
我觉得你的问题就在这里
Set dialogDoc = New NotesDocument(db)
你小心翼翼地从当前的 UIDoc 中获取了文档对象,然后用一个新的(空白)文档覆盖了它。
在此之前,我有 post 个关于我的问题的问题,但仍然没有答案。我会在这里再次尝试 post 提问关于我的问题。我将更新新代码并对其进行解释。在此之前我已经完成了对话框,但我被要求更改它,只需使用视图中的表单即可。
我的流程从打开一个表单开始,以设置新的批次信息。表单名称是 PCBatchInfo。在这种形式中,我有 4 个字段,即 BBatchNo、BInspector、BStart 和 BEnd。然后在这种形式下我有一个按钮。当我点击这个按钮时,它会执行三个过程:
- 创建新的批次信息并保存。这是当前打开的文档。我称之为 "dialogDoc".
- 然后,创建计算机文档的副本。在此副本中,它将替换我刚才创建的 BBatchNo。我将此副本文档称为 "newdoc",将原始文档称为 "doc"
- 之后,我创建新的报表文档并从计算机文档中复制值。然后我将从设置的批号中获取值,即 BInspector、BStart 和 BEnd 并插入到这份报告我称之为 "repdoc".
下面是我按钮中的 lotusscript
Set db = session.CurrentDatabase
Set uidoc = ws.CurrentDocument
Set dialogDoc = uidoc.Document
Set view = db.GetView("Computer")
Set doc = view.GetFirstDocument
If doc.PStatus(0) = "Lock" Then
Msgbox "Complete PC Inspection first!"
Exit Sub
Else
'--set new batch info--'
dialogDoc.Form = "PCBatchInfo"
Call uidoc.FieldSetText("SaveOptions", "1")
Call uidoc.Save
answer% = Messagebox("Please confirm", 4,"Batch Number")
If answer% = 6 Then
While Not (doc Is Nothing)
If doc.PStatus(0) = "Active" Then
'--create new copy document--'
Set newdoc = doc.CopyToDatabase (db)
newdoc.DocumentId = doc.UniversalID
newdoc.PBatchNo = dialogDoc.BBatchNo(0)
Call newdoc.Save(True, False)
'-- set new acceptance form --'
Set repdoc = New NotesDocument (db)
repdoc.Form = "EmpPCSpec"
repdoc.ABatchNo = doc.PBatchNo(0)
repdoc.AStatus = doc.PStatus(0)
repdoc.ATagNo = doc.PTagNo(0)
repdoc.AFStatus = doc.PFStatus(0)
repdoc.AInspector = dialogDoc.BInspector(0)
repdoc.AStart = dialogDoc.BStart(0)
repdoc.AEnd = dialogDoc.Bend(0)
Call repdoc.ReplaceItemValue("AStatus", "Incomplete")
Call repdoc.ComputeWithForm(False,False)
Call repdoc.save(True,False)
doc.PStatus = "Lock"
Call doc.ComputeWithForm(False,False)
Call doc.save(True,False)
End If
Set doc = view.GetNextDocument(doc)
Wend
End If
End If
所有这些过程我 运行 一键完成。所以当我 运行 这个按钮时,我成功地创建了新的批次信息,我可以创建文档的副本,我可以创建报告文档。 但是现在的问题是在复制文件时,没有显示BBatchNo。而在报告文件中,它没有显示我想要得到的BInspector、BStart和BEnd来自 PCBatchInfo 表格。该字段留空。我希望我的解释清楚我的问题。我感谢你们的任何帮助。谢谢!
更新问题
对于使用 PCBatchInfo 为新批次信息保存的所有信息,视图处于打开状态 (PCBatch)。如何获得此视图中的值?我只从 "Computer" 保存计算机文档的地方获得价值。
我觉得你的问题就在这里
Set dialogDoc = New NotesDocument(db)
你小心翼翼地从当前的 UIDoc 中获取了文档对象,然后用一个新的(空白)文档覆盖了它。