Domino 6.5 - 框架集中的关闭文档 - 关闭应用程序

时间:2009-06-10 18:24:54

标签: lotus-domino lotus

我正在开发一个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文档的任何想法。

德里克

2 个答案:

答案 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事件。