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

时间:2019-06-18 07:48:15

标签: lotus-notes lotusscript

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

我的流程从打开表单开始,以设置新的批次信息。表单名称为 PCBatchInfo 。在此表单中,我有4个字段,分别是 BBatchNo BInspector BStart BEnd 。然后以这种形式我有一个按钮。当我单击此按钮时,它将执行三个过程,即:

  1. 创建新的批次信息并保存。这是当前打开的文档。我称之为“ dialogDoc”。
  2. 然后,创建“计算机”文档的副本。在此副本中,它将替换我刚才创建的 BBatchNo 。我将此副本文档称为“ newdoc”,将原始文档称为“ doc”
  3. 之后,我创建新的报告文档并从“计算机”文档中复制值。然后,我将从设置的批次编号 BInspector BStart BEnd 中获得价值,并将其插入此报告中,我将其称为“ repdoc”。

在我的按钮下面,我的莲花脚本

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 。并且在报告文档中,它没有显示我要从PCBatchInfo表单获取的 BInspector BStart BEnd 。该字段为空。我希望我的解释清楚我的问题。谢谢你们的任何帮助。谢谢!

更新问题

有关所有信息,请使用PCBatchInfo保存新的批次信息,该视图处于(PCBatch)上。如何在此视图中获得价值?我只能从保存计算机文档的“计算机”中获得价值。

1 个答案:

答案 0 :(得分:1)

我认为您的问题就在这里

Set dialogDoc = New NotesDocument(db)

您仔细地从当前的UIDoc中获取了文档对象,然后用新的(空白)文档覆盖了它。