@cococo69
... klar ist das machbar, dann dreht man eben den Ablauf...
... dann baut man eine Aktion in die Adressdatenbank und und wählt eben den Brief aus...
Sub Click(Source As Button)
' # Serienbrief-Ausdruck...
' # - die Aktion ist in einer Notes-Adressdatenbank, z.B. in der Ansicht "People"
' # - die Vorlagendatenbank heißt "Print.nsf" und liegt lokal
' # - ... die Vorlagendatenbank hat eine Ansicht "Briefvorlagen"
' # - ... die Felder in der Briefvorlage entsprechen den Feldern der Adressdokumente...
' #########################################################
' # ... Adressen werden markiert ...
' # ... aus einer Picklist wird eine Briefvorlage gewählt
' # ... die Vorlage wird mit den Adressdaten initialisiert
' # ... das Dokument wird ins Frontend geholt und ausgedruckt
' # ... ... Print ohne Parameter = Druckdialog erscheint
' # ... ... Print mit Parameter = es erscheint kein Druckdialog
' # Der Ausdruck kann nur mit einem lokalen Rechner angestossen werden...
' # ############################################################
' # ata :-))
Dim session As New NotesSession
Dim ws As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim dbThis As NotesDatabase
Dim dc As NotesDocumentCollection
Dim docLetter As NotesDocument
Dim dbBV As NotesDatabase ' BriefVorlage
Dim docAddress As NotesDocument
Dim FieldList( 0 To 4) As String
Dim vValue As Variant
Dim i As Long
FieldList( 0 ) = "FirstName"
FieldList( 1 ) = "LastName"
FieldList( 2 ) = "StreetAddress"
FieldList( 3 ) = "Zip"
FieldList( 4 ) = "City"
Set dbThis = session.CurrentDatabase
Set dbBV = session.GetDatabase( "" , "print.nsf")
If dbBV.IsOpen Then
' # Briefvorlage auswählen
Set dc = ws.PickListCollection( 1 , True , "" , "print.nsf" , "Briefvorlagen", "Auswahl einer Briefvorlage..." , "Wählen Sie die Briefvorlage des Serienbriefes aus der Liste" )
' # Es soll nur eine Vorlage akzeptiert werden
If dc.Count = 0 Then
Msgbox "Abbruch - es muß eine Briefvorlage ausgewählt werden..."
Exit Sub
Elseif dc.Count = 1 Then
Set docLetter = dc.getFirstDocument
Else
Msgbox "Abbruch - es soll nur eine Briefvorlage ausgewählt werden..."
Exit Sub
End If
Else
Msgbox "Abbruch - die Datenbank mit den Briefvorlagen konnte nicht geöffnet werden..."
Exit Sub
End If
Set dc = dbThis.UnprocessedDocuments
If dc.Count = 0 Then
Msgbox "Abbruch - es müssen Adressen ausgewählt werden..."
Exit Sub
End If
If dc.Count >0 Then
Set docAddress = dc.GetFirstDocument
While Not docAddress Is Nothing
' # ... Adressfelder übertragen...
For i = 0 To Ubound( FieldList )
vValue = docAddress.GetItemValue( FieldList( i ) )
Call docLetter.ReplaceItemValue( FieldList( i ) , vValue(0) )
Next
Set uidoc = ws.EditDocument( False , docLetter )
' Call uidoc.Print( 1 ) ' # Druck ohne Chance Abbrechen zu können...
Print "... Brief an " + docAddress.Firstname(0) + " " + docAddress.Lastname(0) + " wird ausgedruckt..."
'Call uidoc.Print ' # Druck mit Druckdialog - bei Abbrechen wird das angezeigte Dokument nicht gedruckt
Call uidoc.Close
Set docAddress = dc.GetNextDocument( docAddress )
Wend
Else
Msgbox "Abbruch - es wurden keine Empfänger ausgewählt..."
Exit Sub
End If
End Sub
ata