Mailmerge / Macro

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Mailmerge / Macro

Re: Mailmerge / Macro

von komma4 » Mo, 24.07.2006 23:28

Ist Deine Variable
ehvbs hat geschrieben:

Code: Alles auswählen

    .OutputType         = com.sun.star.text.MailMergeType.FILE
vom Typ short?

Nach dem .execute() aufräumen?
Ich glaube, da beenden sich nicht alle Prozesse ordnungsgemäss....

Mailmerge / Macro

von ehvbs » Do, 20.07.2006 14:38

Ich benutze folgendes (vereinfachtes) Macro
(in "My cros/Standard/mdlOOPDF):

Code: Alles auswählen

Sub mmergePDF()

' Vorarbeiten erforderlich?
  <???>

  Dim oLis    As Object : oLis    = CreateUnoListener( "oLis_", "com.sun.star.text.XMailMergeListener" )
  Dim oMM     As Object : oMM     = CreateUnoService( "com.sun.star.text.MailMerge" )
  Dim oProps() 
  With oMM
    .DocumentURL        = <...>
    .DataSourceName     = <...>
    .CommandType        = <...>
    .Command            = <...>
    .OutputType         = com.sun.star.text.MailMergeType.FILE
    .OutputUrl          = <...>
    .FileNameFromColumn = False
    .SaveFilter         = "writer_pdf_Export"
    .addMailMergeEventListener( oLis )
    .execute( oProps() )
    .removeMailMergeEventListener( oLis )
  End With 

' Nacharbeiten erforderlich?
  <???>

End Sub

Sub oLis_notifyMailMergeEvent( oEv As Object )
  Dim oDoc       As Object : oDoc     = oEv.Model
  Dim oForm      As Object : oForm    = oDoc.DrawPage.Forms.getByIndex( 0 )
  Dim picSign0   As Object : picSign0 = oForm.getByName( "picSign0" )
  
  <...>

  Dim sFSpec : sFSpec = <...>
  picSign0.imageURL = ConvertToURL( sFSpec )

End Sub

Sub oLis_disposing()
End Sub
um aus
  • einer von einem 'fremden' Programm erstellen .txt-Datei
  • in einem Verzeichnis abgelegten, den Datensaetzen zugeordneten Bildern (Dateiname kann aus Feldinhalten abgeleitet werden)
  • einer .odt-Datei - ganz standardmaessig bis auf das Image-Control "picSign0"
  • einer registrierten OOBase, die auf die .txt-Detei verweist

eine Serie von .pdf-Dateien zu erzeugen. Das funktioniert auch gut -
bis auf zwei Probleme:
  • Für jeden Datensatz wird ein dann als .pdf gespeichertes Dokument sichtbar geoeffnet.
    • Kann/muss ich vor der Erzeugung des MailMerge-Objekts einen neuen Desktop (ein neues/leeres Dokument) erzeugen und irgendwie (_hidden?, Parameter?) unsichtbar machen?
    • Sollte ich das Macro in ein Dokument verlegen und dies unsichtbar oeffnen?
  • Nach dem Prozess ist die .txt-Datei gesperrt.
    • Kann/muss ich nach dem Prozess die Datenbankquelle des Mailmerge-Objekts explizit schliessen?


Vielen Dank!

ehvbs[/list]

Nach oben