我正在开发一个Domino Client应用程序,它在框架集中打开文档。
当我点击保存按钮时,它会执行一些莲花脚本验证,添加到历史记录字段等,然后最终执行保存:
子点击(源为按钮)
Dim validate1作为验证
Dim ws作为新的NotesUIworkspace
Dim s作为新的NotesSession
Dim uidoc作为NotesUIDocument
Dim approverNames As String
昏暗的工作流程1作为工作流程
Dim name1 As String
Dim names1 As String
Dim item1作为NotesItem
昏暗的历史1作为历史
Set uidoc = ws.CurrentDocument
Call uidoc.refresh
'===============================================
'Validation
'===============================================
Set validate1 = New Validation()
Call validate1.checkCustomer(uidoc.FieldGetText("Customer"))
Call validate1.checkEndUser(uidoc.FieldGetText("EndUser"))
Call validate1.checkShortProjectDescription(uidoc.FieldGetText("ShortProjectDescription"))
Call validate1.checkProjectName(uidoc.FieldGetText("ProjectName"))
Call validate1.checkProjectLocation(uidoc.FieldGetText("ProjectLocation"))
Call validate1.checkOperationCenter(uidoc.FieldGetText("BusinessUnit"))
Call validate1.checkSalesCenter(uidoc.FieldGetText("SalesCenter"))
Call validate1.checkMarketSegment(uidoc.FieldGetText("MarketSegment"))
Call validate1.checkSAPDate(uidoc.FieldGetText("SAPDate"))
Call validate1.checkRevision(uidoc.FieldGetText("Revision"))
Call validate1.checkValidityDate(uidoc.FieldGetText("ValidityDate"))
Call validate1.checkDateApproval(uidoc.FieldGetText("DateApproval"))
Call validate1.checkCurrencyUSD(uidoc.FieldGetText("CurrencyUSD"))
Call validate1.checkMargin(uidoc.FieldGetText("Margin"))
If validate1.displayErrorMessages() = 0 Then
'========================================================================
Call uidoc.FieldSetText("WhoHasApproved","")
Call uidoc.FieldSetText("ApproversNotified","")
Call uidoc.FieldSetText("SubmitDate",Cstr(Now))
Call uidoc.FieldSetText("Status","In Process")
'Add calls to workflow here....
Set workflow1 = New workflow("SAPFCD")
'Update History Field - Submitted for Processing by
Set history1 = New History(uidoc.Document)
Call history1.addTo("Submitted for Processing", uidoc.FieldGetText("CreatedBy"))
Set item1 = uidoc.Document.ReplaceItemValue("History" , history1.getDescription())
'Set ApproverList
names1 = workflow1.setApproverList(uidoc)
Call uidoc.FieldSetText("ApproverList",names1)
uidoc.Refresh
name1 = workflow1.setNextApprover(uidoc)
Call uidoc.FieldSetText("NextApprover", name1)
'========================================================================
'Add calls to workflow here....
Call uidoc.FieldSetText("Status","1st Peer")
uidoc.Save
uidoc.Close(True)
uidoc.Close(True)
End If
End Sub
然后继续关闭整个数据库并将用户返回到工作区。
我想要的是保存文档,然后将用户返回到框架集中的指定页面。
我尝试将这样的代码添加到QuerySave事件中,但不起作用:
Sub Queryclose(Source As Notesuidocument,Continue As Variant)
Dim ws As New NotesUIworkspace
ws.OpenFrameSet( “大型机”)
ws.SetTargetFrame( “主”)
ws.OpenPage( “已保存”)
结束子
关于如何在不关闭整个数据库的情况下保存/关闭框架集中的UI文档的任何想法。
德里克
答案 0 :(得分:1)
为什么在框架集的框架内打开文档的任何特定原因?
通常你有一个框架集用于大纲和视图,文档在他们自己的选项卡/窗口中打开,这样当你运行的代码只关闭文档时。
**更新 做了一些测试,你可以在uidoc.save之后插入它并删除uidoc.close
Call ws.SetTargetFrame("your frame name here")
Call ws.ComposeDocument("","","your form name here",,,False)
我忘了提到你应该在退出应用程序时将目标框架设置回“”,如果你没有用户在其他应用程序试图打开框架集时可能会出错。
答案 1 :(得分:0)
如果您只包含一个uidoc.close事件而不是您显示的两个事件,它应该可以正常工作。
还要确保没有任何Form事件PostSave / PostClose或QuerySave / QueryClose调用close事件。