2011-11-02 108 views
0

請幫忙。我在表單中有一個querysave事件。下面是代碼片段。它是用於計算一個參考號(編號結算),其格式爲「ST115-00001」 子QuerySave的(來源如Notesuidocument,繼續作爲變型)公式填充值中的值

Dim w As New notesuiworkspace 
Dim uidoc As notesuidocument 
Dim SESS As New NotesSession 
Dim RefView As NotesView 
Dim DB As NotesDatabase 
Dim RefDoc As NotesDocument 
Set DB = SESS.CurrentDatabase 

Set RefView = DB.GetView("System\AutoNo") 
Set uidoc=w.CurrentDocument 

Dim approvedcnt As Integer 
approvedcnt = Cint(source.fieldgettext("appcnt")) 

If uidoc.EditMode = True Then 

    Financial_Year = Clng(Right$(Cstr(Year(Now)),3)) + 104 
    If Month(Now) >= 4 Then Financial_Year = Financial_Year + 1 
    DocKey  = Cstr(Financial_Year)& "-" 
    New_No  = 0 
    Set RefDoc = RefView.GetDocumentByKey(DocKey , True) 
    If Not(RefDoc Is Nothing) Then New_No = Clng(Right$(RefDoc,5)) 
    New_No  = New_No + 1 
    autono  = DocKey & "-" & Right$("00000" & Cstr(New_No) ,5) 
    Application ="ST" 
    Latest_No = Application + autono 
    Call uidoc.FieldSetText("SETTLEMENT_NO",Latest_No) 
    Call uidoc.Refresh 
    Else 
    Exit Sub 
End If 

get_ex_rate 
get_cv_local 


Call uidoc.FieldSetText("Flag1", "A") 

If approvedcnt = 12 And uidoc.FieldGetText("STATUS") = "APPROVE" Then 
    Call uidoc.fieldsettext("Flag2", "B") 
End If 

Dim answer2 As Integer 

answer2% = Msgbox("Do you want to save this document?", 1, "Save") 
If answer2 = 1 Then 
    Print "Saving" 
End If 
If answer2 = 2 Then 
    continue=False 
    Exit Sub 
End If 

uidoc.Refresh 
uidoc.close 

結束子

我需要DocKey的值和New_No被填充到視圖。我應該使用什麼公式,並且是我的邏輯正確的。請幫忙。

Regards, Priya。

+0

看起來你只需要在你的視圖中添加settlement_no項作爲一個列?或者,如果您想在您的視圖中使用dockey和new_no,只需將它們保存到文檔中,就像您爲結算編號所做的一樣。 –

回答

2

您的代碼不需要獲取視圖或執行任何操作來填充它。通過決定顯示哪些文檔的選擇公式來填充視圖,以及確定爲每個文檔顯示哪些值的列公式。這些公式是通過在Domino Designer中打開特定視圖進行編輯的。

如果您已經有一個選擇正確文檔的視圖,並且該視圖已經有一個Settlement_No列,那麼您應該已經在視圖中看到類似「ST115-00001」的值。如果您已經有了這個視圖,但它沒有顯示Settlement_No數據,並且如果這是您希望在視圖中看到數據的格式,那麼您只需在視圖中添加一列,選擇「Field」,然後選擇「Settlement_No」。

如果你真正要求的是如何在視圖中看到DocKey和New_No而不將它們組合起來,那麼不用看「ST115-00001」就可以看到「ST115」和「00001」,那麼你有兩種選擇。

  1. 修改您的代碼以在文檔中保存DockKey和New_No,然後將兩個新列添加到視圖中。如果您不想將新的可見字段添加到表單中,則需要使用NotesDocument類和ReplaceItemValue以保存DocKey和New_No。

  2. 只需添加兩個視圖列,並在第一列公式中使用@Left(Settlement_No;「 - 」)並在第二列公式中使用@Right(Settlement_No;「 - 」)。

顯然,方法2是簡單的,但方法1有你永遠不會有改變它,即使哪天你決定更改Settlement_No場的形式,使得它看起來像這樣的「優勢ST115:00001 /更多東西在這裏「。

+0

非常感謝您的幫助。我現在能夠做到。現在我已經使用了第二種方法。第一種方法將在未來幫助我。謝謝。 現在邏輯中的另一個問題。當我保存時,我添加的文檔不會增加。它每次顯示00001 ..我試圖找到wat是錯誤的...你能幫忙嗎? – Priya

+0

現在我得到一個類型不匹配的錯誤,現在爲同一個腳本,當我嘗試保存第二個文檔:( – Priya

+0

幫我在這個請::( – Priya