2011-11-02 2 views
0

도와주세요. 나는 형태로 querysave 이벤트를 가진다. 아래는 코드 스 니펫입니다. 그것은 누구의 형식 "ST115-00001"하는 심판 번호 (결제 번호)를 계산하는 것입니다 하위 Querysave (Notesuidocument으로 소스, 변형으로 계속) 나는 DocKey의 값을 필요보기에 값을 채우는 수식

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 

최종 하위

을 New_No를보기에 채 웁니다. 어떤 수식을 사용해야하며 내 논리가 맞아야합니다. 도와주세요.

감사합니다. Priya.

+0

보기에서 열로 settlement_no 항목을 추가해야하는 것처럼 보입니까? 또는 도킹 스테이션과 new_no를보기에 원할 경우 정산 번호와 마찬가지로 문서에 저장하십시오. –

답변

2

코드에서보기를 가져올 필요가 없습니다. 뷰는 표시 할 문서를 결정하는 선택 수식과 각 문서에 대해 표시되는 값을 결정하는 열 수식을 사용하여 스스로 채 웁니다. 이 수식은 Domino Designer에서 특정보기를 열어 편집합니다.

이미 올바른 문서를 선택하고 해당보기에 Settlement_No 열이 이미있는 경우보기에 "ST115-00001"과 같은 값이 이미 표시되어 있어야합니다. 이미 뷰가 있지만 Settlement_No 데이터가 표시되지 않는 경우 뷰에 데이터를 표시하려는 형식이면 뷰에 열을 추가하고 "필드"를 선택하면됩니다. "Settlement_No"를 선택하십시오.

실제로 묻는 것은 결합하지 않고보기에서 DocKey와 New_No를 보는 방법입니다. 따라서 "ST115-00001"을 보는 대신 "ST115"와 "00001"을 보게되면 두 가지 선택 사항이 있습니다 .

  1. 코드를 수정하여 문서에 DockKey 및 New_No도 저장 한 다음보기에 두 개의 새 열을 추가하십시오. 양식에 새로운 표시 필드를 추가하지 않으려면 DocKey 및 New_No를 저장하기 위해 NotesDocument 클래스 및 ReplaceItemValue를 사용해야합니다.

  2. 두 개의보기 열을 추가하고 첫 번째 열 수식에 @Left (Settlement_No; "-")를 사용하고 두 번째 열 수식에 @Right (Settlement_No; "-")를 사용하기 만하면됩니다.

분명히 방법이 간단하지만, 방법 (1)는 당신이 "다음과 같습니다 있도록 Settlement_No 필드의 서식을 변경하기로 결정도 언젠가 경우 혹시 그것을 변경할 필요가 없습니다 것입니다 장점이있다 ST115 : 00001/more stuff here "를 참조하십시오.

+0

도움을 주셔서 대단히 감사합니다. 나는 지금 그것을 할 수있다. 지금은 두 번째 방법을 사용했습니다. 첫 번째 방법은 미래에 나를 도울 것입니다. 고마워요. 논리의 또 다른 문제점. 내가 저장할 때 내가 추가하는 문서가 증가하지 않습니다. 그것은 매번 00001을 보여주고 있습니다. 나는 와트가 틀렸다는 것을 알아 내려고 노력하고 있습니다 ... 도와 주실 수 있습니다. – Priya

+0

두 번째 문서를 저장하려고 할 때 동일한 스크립트에 대해 형식 불일치 오류가 발생합니다. ( – Priya

+0

도와주세요 : – Priya

관련 문제