0

ビューのドキュメントのピックリストを表示するフォームにボタンがあります...私の問題は、ピックリストから選択したドキュメントをフィールド「Superior1」に設定できないことです..助けてください..以下はクリックですイベントスクリプト...

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

間違いがあれば訂正してください... ピックリストからドキュメントを選択すると.. 最初のドキュメントがフィールド "Superior1" に設定されます... 選択した wateva がフィールドに設定されません...

4

3 に答える 3

0

mbonaciの答えへの小さな追加-ユーザーが「キャンセル」を押すと、ダイアログはEMPTYバリアントを返すことに注意してください。この場合、アクセスしようとするpicklist(0)とエラーが発生します。これを説明するために、IsEmpty(picklist)Trueかどうかを確認し、Trueの場合は、適切なこと(Exit Subなど)を実行してください。

于 2011-03-07T17:13:57.233 に答える
0

最後のPickListStringsパラメーターを使用して、選択リスト ダイアログのドキュメントをカテゴリに制限する場合、ダイアログにはカテゴリ (最初の列) も表示されないため、最後から 2 番目のパラメーターとして1を指定することはありません。
代わりに、最初に表示される列を取得するには2を使用します。

また、GetdocumentByKeyこの目的で使用する場合は、2 番目のパラメータをTrue(あいまい検索ではなく完全一致ドキュメントが必要) に設定します。

ただ理解しようとしているだけなら、私には理解できないことが 1 つあります。

ピックリストから選択したドキュメントをフィールド「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 を使用して (ビュー列の) 値のいずれかを既に取得できるのに、同じドキュメントを取得するためにルックアップを行う理由がわかりません。

于 2011-03-07T15:08:50.527 に答える
0

PickListStrings から返される picklist は、文字列の配列です。GetDocumentByKey でその値を使用するには、picklist(0) を使用して最初のエントリを取得します。

于 2011-03-07T10:47:05.830 に答える