为什么我的表单按钮无法正常使用

时间:2019-07-08 07:42:33

标签: lotus-notes lotusscript

在此之前,我已经在here中提出了要求,但仍然没有解决它。我尝试了所有可能的方法,但仍然无法解决问题。

我将尝试再次解释。基本上我有状态为“活动”的文档列表。所以我的按钮在“批处理”视图上。我的按钮过程开始于检查“计算机”视图中的所有文档是否处于“锁定”状态。如果任何文档的状态为“锁定”,则退出子目录,否则继续处理。流程继续是第一个批号。然后在“计算机”中创建复制文档。复制文档的状态为“草稿”,当前文档会将itemvalue替换为“ Lock”。对于所有文档,此过程将继续。

所以下面是我的Lotusscript按钮。

Set db = session.CurrentDatabase
Set uiview = ws.CurrentView

Set uidoc = ws.CurrentDocument
Set dialogDoc = uidoc.Document
Set view = db.GetView("Computer")

Set doc = view.GetFirstDocument
While Not (doc Is Nothing)
    If doc.PStatus(0) = "Lock" Then
        Msgbox "Complete PC Inspection first!"
        Exit Sub
    Else
        answer% = Messagebox("Do you confirm?")
        If Not answer% = 6 Then
            Msgbox("Process Incomplete")
            Exit Sub
        Else
            dialogDoc.Form = "BatchInfo"
            Call uidoc.FieldSetText("SaveOptions", "1")
            Call uidoc.Save
            While Not (doc Is Nothing)
                If doc.PStatus(0) = "Active" Then

            '-----create new copy document-----'
                    Set newdoc = doc.CopyToDatabase(db)
                    newdoc.PBatchNo = dialogDoc.BBatchNo(0)
                    newdoc.PStatus = "Draft"
                    Call newdoc.Save(True, False)

                    doc.PStatus = "Lock"
                    Call doc.ComputeWithForm(False,False)
                    Call doc.save(True,False)
                End If
                Set doc = view.GetNextDocument(doc)
            Wend
            Messagebox("Process completed.")
        End If
    End If
    Exit Sub
Wend

现在,“计算机”中的所有文档的状态均为“锁定”,因此当我再次单击该按钮时,它应该直接退出子目录。

首次测试: 因此,现在,我将“计算机”列表中任何文档的状态从“锁定”更改为“活动”。除第一份文件外的任何文件。然后,我将返回“批处理”视图和“单击”按钮,它显示消息框“首先完成PC检查!”。这意味着没有问题

第二项测试: 所以现在,我尝试第二次测试。该测试与首次测试类似,但是对于此测试,我将在“计算机”视图中为非常“首次文档”更改文档的状态。然后,我返回到“批处理”视图和“单击”按钮,它忽略消息并转到第14行,即“ answer%= Messagebox(“您确认吗?”)”。它不应该跳到这一行,因为在“计算机”视图中,仍然有处于“锁定”状态的文档。

我尝试了所有可能的方法,但我无法成功。任何人都可以帮助解决我的问题吗?对此,我真的非常感激。谢谢

1 个答案:

答案 0 :(得分:1)

从您对要执行的操作的描述来看,我认为您需要先关闭第一个While..Wend循环,然后再进入第一个Else

@Html.Raw(<script>DropDownValue();</style>);

我希望能有所帮助。我认为您的问题是,您认为您正在浏览整个视图以使用PStatus =“ Lock”查找文档,但是因为您的Wend就在代码末尾,并且没有view.getnextdocument(doc ),这根本没有发生。