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

当您使用最后一个PickListStrings参数将选择列表对话框中的文档限制为一个类别时,您永远不会将1指定为倒数第二个参数,因为您甚至看不到对话框中的类别(即第一列)。
相反,要获得第一个可见列,请使用2

此外,当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 获取它的任何(视图列)值?

于 2011-03-07T15:08:50.527 回答
0

从 PickListStrings 返回的 picklist 是一个字符串数组。要在 GetDocumentByKey 中使用其值,请使用 picklist(0) 获取第一个条目。

于 2011-03-07T10:47:05.830 回答
0

mbonaci 答案的一个小补充 - 请注意,如果用户按下“取消”,对话框将返回一个EMPTY变体。在这种情况下,尝试访问picklist(0)会导致错误。要解决这个问题,请检查是否为IsEmpty(picklist)真,如果为真,请执行适当的操作(Exit Sub等)。

于 2011-03-07T17:13:57.233 回答