如何从刚刚保存的NotesUIDocument中获取字段值并显示在其他文档中

How to get field value from NotesUIDocument that just have been saved and display in other document

在此之前,我有 post 个关于我的问题的问题,但仍然没有答案。我会在这里再次尝试 post 提问关于我的问题。我将更新新代码并对其进行解释。在此之前我已经完成了对话框,但我被要求更改它,只需使用视图中的表单即可。

我的流程从打开一个表单开始,以设置新的批次信息。表单名称是 PCBatchInfo。在这种形式中,我有 4 个字段,即 BBatchNoBInspectorBStartBEnd。然后在这种形式下我有一个按钮。当我点击这个按钮时,它会执行三个过程:

  1. 创建新的批次信息并保存。这是当前打开的文档。我称之为 "dialogDoc".
  2. 然后,创建计算机文档的副本。在此副本中,它将替换我刚才创建的 BBatchNo。我将此副本文档称为 "newdoc",将原始文档称为 "doc"
  3. 之后,我创建新的报表文档并从计算机文档中复制值。然后我将从设置的批号中获取值,即 BInspectorBStartBEnd 并插入到这份报告我称之为 "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。而在报告文件中,它没有显示我想要得到的BInspectorBStartBEnd来自 PCBatchInfo 表格。该字段留空。我希望我的解释清楚我的问题。我感谢你们的任何帮助。谢谢!

更新问题

对于使用 PCBatchInfo 为新批次信息保存的所有信息,视图处于打开状态 (PCBatch)。如何获得此视图中的值?我只从 "Computer" 保存计算机文档的地方获得价值。

我觉得你的问题就在这里

Set dialogDoc = New NotesDocument(db)

你小心翼翼地从当前的 UIDoc 中获取了文档对象,然后用一个新的(空白)文档覆盖了它。