문제

프레임 세트에서 문서를 열어주는 Domino 클라이언트 응용 프로그램을 작성하고 있습니다.

저장 버튼을 클릭하면 Lotus 스크립트 유효성 검증을 수행하고 히스토리 필드에 추가 한 다음 마지막으로 저장을 수행합니다.

서브 클릭 (소스 AS 버튼) dim validate1 as as as as new notesuiworkspace dim s dim s dim s dim s dim s dim s dim s dim s dim s dim s dim s dim s dim s
dim uidoc as notesuidocument dim appervernames as String dim workflow1로 워크 플로
dim name1 as string dim names1로 string as dim item1 as as notesitem dim history1 as history

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

종료 서브

그런 다음 전체 데이터베이스를 닫고 사용자를 작업 공간으로 반환합니다.

내가 원하는 것은 문서를 저장 한 다음 프레임 세트의 지정된 페이지로 사용자를 반환하는 것입니다.

이와 같은 코드를 QuerySave 이벤트에 추가하려고 시도했지만 작동하지 않습니다.

Sub QueryClose (소스는 NoteSuidocument로서 소스, 변형으로 계속) dim ws new noteuiworkspace로 dim ws
ws.openframeset ( "메인 프레임") ws.settargetframe ( "main")
ws.openpage ( "저장된") 종료 서브

전체 데이터베이스를 닫지 않고 프레임 세트에있는 UI 문서를 저장/닫는 방법에 대한 아이디어.

데릭

도움이 되었습니까?

해결책

프레임 세트의 프레임 내에 문서가 열려있는 구체적인 이유는 무엇입니까?
일반적으로 개요에 대한 프레임 세트가 있고 뷰가 있으며,이 방법으로 실행 한 코드가 DOC 만 닫을 때 자체 탭/창에 문서가 열립니다.

** 업데이트는 더 많은 테스트를 수행했으며 uidoc.save 후에 uidoc.close를 제거한 후 삽입 할 수 있습니다.

Call ws.SetTargetFrame("your frame name here") 
Call ws.ComposeDocument("","","your form name here",,,False)

대상 프레임을 ""앱을 종료 할 때 다른 앱이 프레임 세트를 열려고 할 때 오류가 발생할 수없는 경우 대상 프레임을 ""로 다시 설정해야한다고 언급하는 것을 잊었습니다.

다른 팁

당신이 보여준 두 가지 대신 하나의 uidoc.close 이벤트 만 포함하는 경우에도 잘 작동합니다.

또한 Form Events Postsave/PostClose 또는 QuerySave/QueryClose가 가까운 이벤트를 호출하지 않도록하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top