在此之前,我已经在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(“您确认吗?”)”。它不应该跳到这一行,因为在“计算机”视图中,仍然有处于“锁定”状态的文档。
我尝试了所有可能的方法,但我无法成功。任何人都可以帮助解决我的问题吗?对此,我真的非常感激。谢谢
答案 0 :(得分:1)
从您对要执行的操作的描述来看,我认为您需要先关闭第一个While..Wend循环,然后再进入第一个Else
@Html.Raw(<script>DropDownValue();</style>);
我希望能有所帮助。我认为您的问题是,您认为您正在浏览整个视图以使用PStatus =“ Lock”查找文档,但是因为您的Wend就在代码末尾,并且没有view.getnextdocument(doc ),这根本没有发生。