2011-03-07 37 views
0

我有一個窗體中的按鈕,帶來一個視圖的文件的選取列表...我的問題是我無法將所選文檔從選取列表設置到「Superior1」 .. plz幫助我..以下是click事件腳本...按鈕事件字段設置問題 - 蓮花腳本

Sub Click(Source As Button) 
    Dim session As New notessession 
    Dim view As NotesView 
    Dim view1 As notesview 
    Dim doc As notesdocument 
    Dim db As Notesdatabase 
    Dim Overdb As notesdatabase 
    Dim og As String 
    Dim Sup As String 

Set db=session.CurrentDatabase 
Set Overdb=session.GetDatabase(gsserver, "Master\\ASEAN_Staff.nsf") 

Dim workspace As New NotesUIWorkspace 
Dim uidoc As NotesUIDocument 
Dim picklist As Variant 

Set uidoc = workspace.CurrentDocument 

og = uidoc.FieldGetText("OfficeGroup_Key") 

picklist = workspace.PickListStrings(PICKLIST_CUSTOM,_ 
False,_ 
gsserver,_ 
"Master\\ASEAN_Staff.nsf",_ 
"x_asean_superior1",_ 
"Select Name",_ 
"Choose",_ 
1,_ 
og) 


If Isempty(picklist) Then 
    Exit Sub    
Else 

    Set view = Overdb.GetView("x_asean_Superior1") 
    Set doc = view.GetdocumentByKey(picklist, False) 

    Sup=doc.ColumnValues(1) 

    Call uidoc.FieldSetText("Superior1", Sup) 


End If 

End Sub 

PLZ糾正我,如果我錯了anywhr ......在從..一號文件被設置到領料單中選擇一個文件字段「Superior1」...我選擇的wateva沒有在字段中設置...

回答

0

PickList從PickListStrings返回時是一個字符串數組。要在GetDocumentByKey中使用它的值,請使用picklist(0)來獲取第一個條目。

0

當你使用最後PickListStrings參數限制在選擇列表對話框類別的文檔,你永遠不指定作爲倒數第二個PARAM,因爲你甚至看不到的類別(這是第一列)在對話框中。
相反,要獲得第一個可見列使用。

另外,當爲此使用GetdocumentByKey時,請將第二個參數設置爲True(您需要完全匹配文檔,而不是模糊搜索)。

有一件事我不明白,如果你只是想

設置從列表中點亮所選文檔轉換爲場「Superior1」

你爲什麼不乾脆直接從PickListStrings傳遞值。在PickListStrings只需指定列(在對話框中可見)號,這樣的:

... 
picklist = workspace.PickListStrings(PICKLIST_CUSTOM,_ 
False,_ 
gsserver,_ 
"Master\\ASEAN_Staff.nsf",_ 
"x_asean_superior1",_ 
"Select Name",_ 
"Choose",_ 
2,_ 
og) 

Call uidoc.FieldSetText("Superior1", picklist(0)) 

我不明白你爲什麼要這麼做查詢得到同樣的文件,當你已經可以得到任何它(查看列)值使用PickListStrings?

0

mbonaci的答案的一個小的補充 - 請注意,如果用戶按下「取消」對話框返回EMPTY變種。在這種情況下,嘗試訪問picklist(0)會導致錯誤。爲了解決這個問題,檢查是否IsEmpty(picklist),如果爲真,做適當的事情(Exit Sub等)。

+0

非常感謝你... mbonaci ... cwaidner ... Hristo ...它終於奏效了! :) – SarahXP

+0

@mbonaci - 對。我在代碼缺少IsEmpty()檢查的同一主題上回答了[Sarah的另一個問題](http://stackoverflow.com/questions/5162450/button-click-event-lotus-script),所以我在這裏也提到了它,沒有注意到這裏的代碼已經有了這個檢查。 – Hristo