Das kann ich gerne aufklären. Hier kommt der komplette Code:
Sub Inviewedit(Source As Notesuiview, Requesttype As Integer, Colprogname As Variant, Columnvalue As Variant, Continue As Variant)
Const QUERY_REQUEST = 1
Const VALIDATE_REQUEST = 2
Const SAVE_REQUEST = 3
Const NEWENTRY_REQUEST = 4
Const KEYEVENTF_KEYUP = &H2
Const KEYEVENTF_KEYDOWN = &H0
Const VK_CONTROL = &H11
Const VK_C = &H43
Const VK_V = &H56
Const VK_TAB = &H9
Const VK_UP = &H26
Const VK_DOWN = &H28
Dim ws As New NotesUIWorkspace
Dim db As NotesDatabase
Dim doc As NotesDocument
Dim caret As String
Dim msg As String
Dim flag As Boolean
Dim ret As Boolean
Dim values() As String
Dim i As Integer
Dim j As Integer
Dim max As Integer
Dim newval As String
caret = Source.CaretNoteID
If caret = "0" Then Exit Sub
Set db = Source.View.Parent
Set doc = db.GetDocumentByID(caret)
Dim auswahl As New NotesDocument(db)
Dim Status(18) As String
Status(0) = "Offen"
Status(1) = "neu eingestellt"
Status(2) = "In Arbeit"
Status(3) = "Fertig zur Vorlage im UAK-DMS"
Status(4) = "Abstimmung im UAK-DMS erfolgt"
Status(5) = "Aufnahme in Releaseplanung"
Status(6) = "Zur Aufwandsschätzung"
Status(7) = "Fertig zur Vorlage im FAK-BO"
Status(
= "Beauftragung durch FAK-BO zugestimmt"
Status(9) = "In Realisierung"
Status(10) = "Abnahme durch FAK-BO erfolgt"
Status(11) = "In Prüfung durch ivv"
Status(12) = "Bereit zum Test"
Status(13) = "Freigabe für Produktion"
Status(14) = "Zurückgestellt"
Status(15) = "iAK Anforderung"
Status(16) = "Sammlung eAK-Release"
Status(17) = "Geschlossen"
Dim systeme(4) As String
Systeme(0)="Scanning"
Systeme(1)="eGVR"
Systeme(2)="Arbeitskorb"
Systeme(3)="Sonstiges"
Select Case Requesttype
Case QUERY_REQUEST
Select Case Colprogname(0)
Case "Status"
choice = ws.Prompt(PROMPT_OKCANCELLIST,"SELECT","Select the answer","",status)
setClipboardText(choice )
KeyPress VK_CONTROL, 0, 0, 0
KeyPress VK_V, 0, 0, 0
KeyPress VK_CONTROL, 0, 2, 0
KeyPress VK_V, 0, 2, 0
Case "System_Komponente"
choice = ws.Prompt(PROMPT_OKCANCELLIST,"SELECT","Bitte Auswahl treffen","",systeme)
setClipboardText(choice )
KeyPress VK_CONTROL, 0, 0, 0
KeyPress VK_V, 0, 0, 0
KeyPress VK_CONTROL, 0, 2, 0
KeyPress VK_V, 0, 2, 0
continue = False
Case "Thema"
auswahl.Thema = doc.thema(0)
If ws.DialogBox("Thema",True,True,False,False,False,False,"Text eingeben",auswahl) Then
wahl = auswahl.Thema
Call Inviewedit(Source, SAVE_REQUEST, Colprogname, wahl, Continue)
End If
continue = False
Case "Historie_Bemerkung"
auswahl.Historie_Bemerkung = doc.Historie_Bemerkung(0)
If ws.DialogBox("Historie_Bemerkung",True,True,False,False,False,False,"Text eingeben",auswahl) Then
wahl = auswahl.Historie_Bemerkung
Call Inviewedit(Source, SAVE_REQUEST, Colprogname, wahl, Continue)
End If
continue = False
Case "letzte_Änderung"
auswahl.Date = doc.letzte_Änderung
If ws.DialogBox("DP",True,True,False,False,False,False,"Datum letzte Änderung auswählen",auswahl,True , False , False ) Then
wahl = auswahl.Date
Call Inviewedit(Source, SAVE_REQUEST, Colprogname, wahl, Continue)
End If
continue = False
Case "Datum_Bereitstellung"
auswahl.Date = doc.Datum_Bereitstellung
If ws.DialogBox("DP",True,True,False,False,False,False,"Datum Bereitstellung auswählen",auswahl,True , False , False ) Then
wahl = auswahl.Date
Call Inviewedit(Source, SAVE_REQUEST, Colprogname, wahl, Continue)
End If
continue = False
Case "Kundentest_erfolgt_am"
auswahl.Date = doc.Kundentest_erfolgt_am
If ws.DialogBox("DP",True,True,False,False,False,False,"Kundentest-Datum auswählen",auswahl,True , False , False ) Then
wahl = auswahl.Date
Call Inviewedit(Source, SAVE_REQUEST, Colprogname, wahl, Continue)
End If
continue = False
Case "eingestellt_am"
auswahl.Date = doc.eingestellt_am
If ws.DialogBox("DP",True,True,False,False,False,False,"eingestellt am - Datum auswählen",auswahl,True , False , False ) Then
wahl = auswahl.Date
Call Inviewedit(Source, SAVE_REQUEST, Colprogname, wahl, Continue)
End If
continue = False
End Select
Case VALIDATE_REQUEST
Select Case Colprogname(0)
Case "Status"
If Fulltrim(Columnvalue(0)) = "" Then
Messagebox "Bitte einen Wert eintragen",, "Kein Wert in Spalte"
Continue = False
End If
flag = False
Forall element In status
If Lcase(element) = Lcase(Columnvalue(0)) Then
flag = True
Exit Forall
End If
End Forall
If Not flag Then
Forall element In status
msg = msg & element & Chr(10)
End Forall
Messagebox msg,, "Wert muß einem der folgenden entsprechen."
continue = False
End If
Case "Kategorie"
If Fulltrim(Columnvalue(0)) = "" Then
Messagebox "Bitte einen Wert eintragen",, "Kein Wert in Spalte"
Continue = False
End If
Case Else
flag = True
End Select
Case SAVE_REQUEST
For i = 0 To Ubound(Colprogname) Step 1
Call doc.ReplaceItemValue(Colprogname(i), Columnvalue(i))
Next
Call doc.Save(True, True, True)
Call ws.viewrefresh()
Case NEWENTRY_REQUEST
Set doc = New NotesDocument(db)
Call doc.ReplaceItemValue("Form", "MainDocument")
For i = 0 To Ubound(Colprogname) Step 1
Call doc.ReplaceItemValue(Colprogname(i), Columnvalue(i))
Next
Call doc.Save(True, True, True)
Call ws.viewrefresh()
End Select
End Sub
Ich hoffe, das bringt Licht ins Dunkel. Danke schon mal für dein Interesse.
Martin