'SetStichtag: 

Option Declare

%REM
Der Agent SetStichtag erzeugt ein Dokument, das er dann in der
Dialogbox #Stichtag ffnet. Der Benutzer kann nun das Datum
und einen Bearbeiter auswhlen.

Mit diesen Vorgaben werden die Felder Stichtag und 
Bearbeiter in allen markierten Dokumenten gesetzt.
%END REM

Sub Initialize
     
     ' Hauptroutine des Agenten
     
     Dim ws As New NotesUIWorkspace
     Dim session As New NotesSession
     
     Dim db As NotesDatabase
     Dim collection As NotesDocumentCollection
     Dim tmpdoc As NotesDocument ' Dokument fr Dialogbox
     Dim doc As NotesDocument ' Dokument in Bearbeitung
     
     Dim stichtag As Double
     Dim bearbeiter As String
     
     Dim continueflag As Variant ' Flag fr Abbruch der Dialogbox
     Dim saveflag As Variant ' Prfen des Speicherns
     Dim n As Integer
     
     
     Set db = session.CurrentDatabase ' aktuelle Datenbank
     Set tmpdoc = db.CreateDocument ' temp. Dokument anlegen
     
     ' Im ersten Schritt werden die Benutzereingaben abgefragt
     continueflag = ws.DialogBox( "#Stichtag", True, True, _
     False, False, False, False, "Stichtag", tmpdoc )
     If Not continueflag Then
          ' Abbruch gewhlt
          Print "Abbruch. Keine nderungen durchgefhrt."
          Exit Sub
     End If
     
     ' Die eingegebenen Werte werden in Variablen gepuffert
     stichtag = tmpdoc.Stichtag(0)
     bearbeiter = tmpdoc.Bearbeiter(0)
     
     ' Mit diesen Vorgaben werden im folgenden alle
     ' markierten Dokumente bearbeitet
     Set collection = db.UnprocessedDocuments
     n = 0
     Set doc = collection.GetFirstDocument
     Do Until doc Is Nothing
          ' Werte setzen ...
          doc.Stichtag = Cdat( stichtag )
          doc.Bearbeiter = bearbeiter
          ' ... und speichern
          saveflag = doc.Save( False, False )
          ' Prfen, ob das Speichern erfolgreich war
          If saveflag Then
               n = n + 1
          Else
               Print "Eines der Dokumente wurde nicht gespeichert."
          End If
          
          ' nchstes Dokument in der Sammlung
          Set doc = collection.GetNextDocument( doc )
     Loop
     Print "Stichtag gesetzt, " _
     & Cstr( n ) & " Dokumente gendert."
End Sub

