Hallo
Wegen deinem Dialogproblem:
Erstelle eine neue Maske, die zwei Zahlenfelder beinhaltet, eins für das Monat und ein für das Jahr. Ich nenne sie hier "MaskeDialog".
Füge nun folgenden Code in deine Aktion ein. Es wird eine DialogBox mit der "MaskeDialog" angezeigt. Vorher wird ein NotesDocument (docDialog) erzeugt und der Methode DialogBox übergeben, um anschließend die eingegebenen Werte aus der Variable docDialog auszulesen.
Dim ws As New NotesUIWorkspace 'wenn ws bereits deklariert wurde, lass diese Zeile weg
Dim docDialog As NotesDocument
Dim monat As Integer
Dim jahr As Integer
Set docDialog = db.CreateDocument
flag = ws.DialogBox("MaskeDialog", True, True, False, False, False, False, "Angabe Monat und Jahr", docDialog)
If flag = False Then Exit Sub 'wenn Abbrechen (Cancel) geklickt wurde, wird aus der Prozedur gesprungen
' Felderwerte werden ausgelesen und in Variablen gespeichert
monat = docDialog.Monat(0)
jahr = doc.Dialog.Jahr(0)
Diese zwei Variablen monat und jahr kannst du in deinem Code, der neue Dokument erstellt, verwenden.
In die beiden Felder Jahr und Monat der Maske schreibst du am besten in die Eingabevalidierungen folgende Formeln, damit sichergestellt ist, dass die Felder nicht leer bleiben.
@If (Monat = ""; @Failure("Bitte geben Sie ein Monat an."); @Success)
und
@If (Jahr = ""; @Failure("Bitte geben Sie ein Jahr an."); @Success)
Schönen Gruß
Manuel