2015-04-15 74 views
0

我有一個應用程序,在Lotus表單的Postopen中有一些編碼,現在我需要使用XPage將此客戶機應用程序更改爲web。蓮花窗體的Postopen編碼更改爲X頁面

我如何在XPage中編寫代碼來實現表單的Postopen函數?感謝幫助!

以下是形式的PostOpen的編碼:

Sub Postopen(Source As Notesuidocument) 
......... 
Set Targetdb = New NotesDatabase(db.Server, "OAS\PERSONAL.NSF") 
Set enameview = Targetdb .GetView("ENAMEVIEW") 
If enameview Is Nothing Then 
    Print "Coludn't find ENAMEVIEW View." 
    Exit Sub 
End If 
Set cnameview = Targetdb .GetView("CNAMEVIEW") 
If cnameview Is Nothing Then 
    Print "Couldn't find CNAMEVIEW View." 
    Exit Sub 
End If 
Set Personaldoc = enameview.GetDocumentByKey(userName.ABBREVIATED,True) 
If Personaldoc Is Nothing Then 
    message = "Couldn't find your information in Personal Database。 " & Chr(10) 
    msgtype = MB_OK + MB_ICONSTOP 
    return_code = Messagebox (message, msgtype, db.Title) 
    Exit Sub 
End If 
Set doc = Source.Document 
If doc.IsNewNote Then 
    doc.dept=Personaldoc.DEP_NO_CNAME(0) 
    doc.Location = Personaldoc.Location(0) 
    If Personaldoc.C_SUPERIOR2(0)="" Then 
     doc.Director= Personaldoc.C_SUPERIOR(0) 
    Else 
     doc.Director= Personaldoc.C_SUPERIOR2(0) 
    End If 
End If 

末次

+1

請更具體。 –

+0

我想插入編碼到這個評論,但我不知道如何插入。 –

+0

改爲更新問題。 –

回答

0

不是很詳細,但你可能想看看頁/自定義控件的「afterRenderResponse」事件,以及postOpenDocument您的數據源事件。你的代碼的確切位置取決於你想要做什麼,這是我們需要更多關於你想要實現的信息的地方。

作爲一個例子,我有一些代碼添加到計數器每次打開頁面。我的代碼位於數據源的postOpenDocument事件中,因爲我使用LotusScript代理來完成這項工作(代理已經存在,所以我只需要調用它)。

+0

感謝您的幫助!我想要實現的功能是:當用戶點擊xpage視圖中的「New Request」時。我想驗證此用戶的信息是否在其他數據庫(例如:個人數據庫)中,如果允許創建新的xpage文檔。否則不允許。 –

+0

然後創建一個實際上是xAgent的頁面(您可以獲得有關搜索Google for xAgent的更多信息),該頁面會爲您查找並根據查找結果重定向到其他頁面。另一種選擇是通過某些SSJS函數在表單的用戶名的「onChange」或「onExit」上完成查找,該函數可能會設置會話範圍變量,該變量將用於在窗體中顯示或隱藏不同的面板,一旦部分刷新刷新了頁面。 –

+0

Lotus Form的Postopen編碼僅用於驗證點擊「新請求」按鈕的用戶,他的個人信息是否在另一個數據庫(例如:個人數據庫)中,並使用個人信息設置了表單的幾個字段。 –

0

如果您在設計器中打開您的XPage,在XPage上大綱窗口中點擊: XPage Outline

然後在活動窗口中選擇取決於如果你想與服務器端或客戶端的操作下頁相應的事件您數據: enter image description here