Hallo,
in einer Ansicht werden Dokumente angezeigt.
Jedes Dokument hat unter anderem vier Felder namens "vHa", "nHa", "vVe", "nVe".
In jedem dieser Felder werden normalerweise vier Mitarbeiternamen gespeichert.
Es soll per Button in der Ansicht ermöglicht werden, einen Namen auszuwählen.
Solange in jedem Feld wirklich 4 Einträge stehen, funktioniert der u.g. Code einwandfrei.
Wenn aber weniger, dann geht es nicht mehr.
Was müsste in dem Code geändert werden?
Oder gibt's dafür auch ganz andere bessere Lösung?
Gruß
Leo
Sub Click(Source As Button)
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Set db=session.CurrentDatabase
Set dc=db.unprocessedDocuments
Set doc=dc.GetFirstDOcument
Do While Not doc Is Nothing
Dim response As Variant
Dim response1 As Variant
Dim values(3) As Variant
values(0) = "vHa"
values(1) = "nHa"
values(2) = "vVe"
values(3) = "nVe"
Dim valuesA(4) As Variant
valuesA(0) = doc.vHa(0)
valuesA(1) = doc.vHa(1)
valuesA(2) = doc.vHa(2)
valuesA(3) = doc.vHa(3)
Dim valuesB(4) As Variant
valuesB(0) = doc.nHa(0)
valuesB(1) = doc.nHa(1)
valuesB(2) = doc.nHa(2)
valuesB(3) = doc.nHa(3)
Dim valuesC(4) As Variant
valuesC(0) = doc.vVe(0)
valuesC(1) = doc.vVe(1)
valuesC(2) = doc.vVe(2)
valuesC(3) = doc.vVe(3)
Dim valuesD(4) As Variant
valuesD(0) = doc.nVe(0)
valuesD(1) = doc.nVe(1)
valuesD(2) = doc.nVe(2)
valuesD(3) = doc.nVe(3)
response = ws.Prompt (PROMPT_OKCANCELCOMBO, _
"Servicezeit am " & doc.Datum(0) & ": ", "Bitte Funktion auswählen", values(0), values)
'Print response
If Isempty (response) Then
Messagebox "Abgebrochen", , "Nichts ausgewählt"
Else
If response = "vHa" Then
response1 = ws.Prompt (PROMPT_OKCANCELCOMBO, _
"Servicezeit am " & doc.Datum(0) & " " & response & ": ", _
"Bitte Mitarbeiter auswählen", valuesA(0), valuesA)
Elseif response = "nHa" Then
response1 = ws.Prompt (PROMPT_OKCANCELCOMBO, _
"Servicezeit am " & doc.Datum(0) & " " & response & ": ", _
"Bitte Mitarbeiter auswählen", valuesB(0), valuesB)
Elseif response = "vVe" Then
response1 = ws.Prompt (PROMPT_OKCANCELCOMBO, _
"Servicezeit am " & doc.Datum(0) & " " & response & ": ", _
"Bitte Mitarbeiter auswählen", valuesC(0), valuesC)
Elseif response = "nVe" Then
response1 = ws.Prompt (PROMPT_OKCANCELCOMBO, _
"Servicezeit am " & doc.Datum(0) & " " & response & ": ", _
"Bitte Mitarbeiter auswählen", valuesD(0), valuesD)
End If
Print response1
If Isempty (response1) Then
Messagebox "MA-Wahl abgebrochen", , "Nichts ausgewählt"
Else
Msgbox Left(response1,12), ,"SZ-Dok öffnen für " & doc.Datum(0) & " " & _
response
End If
End If
Set doc=dc.GetNextDocument(doc)
Loop
Call ws.ViewRefresh
End Sub