0

列を選択すると行を表示するボタンがあります。しかし、フィールドで 2 番目の値が得られないという問題があります。たとえば、列の誕生日を選択しましたが、同じ値 (1990 年 1 月 1 日など) を持つ 2 つの項目があり、フィールドの最初の項目の行のみが表示され、2 番目の項目は表示されません。手伝って頂けますか?これが私のコードです:

Sub Getvalue
Dim uidoc As NotesUIDocument
Dim ws As New NotesUIWorkspace
Dim printcolumn As String
Dim columnList() As String
Dim y As Integer

'-- print column --
For a =  0 To 10    
    setfield = "Untitled" &  x
    Set uidoc = ws.CurrentDocument
    printfield = uidoc.FieldGetText(setfield)

    Redim Preserve columnList(11)
    columnList(a) = printfield      
    x = x + 10      
Next    

printcolumn = ws.Prompt(4,"Column List", "Select:", , columnList)       

indexresult = (Arraygetindex(columnList, printcolumn)) + 1

'-- print row --
y = (indexresult*10) + 1

For b =  0 To 9
    setrowfield = "Untitled" &  y
    Set uidoc = ws.CurrentDocument
    printrowfield = uidoc.FieldGetText(setrowfield)

    Redim Preserve rowList(10)
    rowList(b) = printrowfield
    y = y + 1       

Next    
printrow = ws.Prompt (4,"Row List", "", ,rowList)   

'-- for duplicates --
Forall prow In columnList
    If printcolumn = prow Then
        indexresult2 = (Arraygetindex(columnList, prow)) + 1
        z = (indexresult2*10) + 1

        For b =  0 To 9
            setrowfield = "Untitled" &  z
            Set uidoc = ws.CurrentDocument
            printrowfield = uidoc.FieldGetText(setrowfield)

            'Redim Preserve rowList(10)
            rowList(b) = printrowfield
            z = z + 1       
            'printrow = ws.Prompt(4,"Row List", "", ,rowList)                       
        Next    
        printrow = ws.Prompt(4,"Row List", "", ,rowList)    
    End If

End Forall  

End Sub
4

1 に答える 1

1

にはのcolumnList一意のメンバが必要Promptです。これを実現する最も簡単な方法は、すべての行の前に行番号を追加することです。利点として、選択した行番号をindexresult非常に簡単に取得できます。

リストは次のようになります。

1. January 1, 1990
2. January 1, 1990
3. January 1, 1990
...

そして、これは適応されたコードです:

Set uidoc = ws.CurrentDocument
Redim Preserve columnList(11)
For a =  0 To 10    
    setfield = "Untitled" &  x
    printfield = uidoc.FieldGetText(setfield)
    columnList(a) = (a+1) & ". " & printfield 
    x = x + 10           
Next    

printcolumn = ws.Prompt(4,"Column List", "Select:", , columnList)       
indexresult = cint(strLeft(printcolumn, "."))
于 2013-07-16T11:31:15.760 に答える