[[hylafax:openoffice_makro_whfc]]

OpenOffice Makro für Serienbriefe per WHFC und Hylafax (Windows)

Funktionalität noch nicht überprüft

Attribute VB_Name = "NewMacros2"
Sub AktuellesDokumentFaxen()
'
' AktuellesDokumentFaxen Makro
'   soll das aktuelle Dokument als Fax mit WHFC versenden
'   Makro erstellt am 17.02.1999 von Heiko Teichmeier
' überarbeitet:
'   Heiko Teichmeier 03.11.2001
'   heiko@tei-lin-net.de
'
Dim WhfcPrinter As String
Dim Default_Active_Printer As String
 
' Name Eures Druckers für HylaFAX
WhfcPrinter = "HylaFAX"
Default_Active_Printer = ActivePrinter
' WHFC-HylaFAX-Drucker als Standarddrucker setzen
ActivePrinter = WhfcPrinter$
 
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, _
    Item:=wdPrintDocumentContent, Copies:=1, Pages:="", _
    PageType:=wdPrintAllPages, Collate:=True, Background:=True, _
    PrintToFile:=False, Append:=False
 
' Default-Drucker (vorhin gespeichert) wieder als Standarddrucker setzen
ActivePrinter = Default_Active_Printer$
End Sub
Sub SendSerienfaxAktuelleSeite()
'
' SendSerienfaxAktuelleSeite Macro
'   soll die aktuelle Seite eines Serienbriefes mit Feld "Fax_Nr" als
'   Zielnummer versenden
'
' Urversion:
'   SendThisFax Macro
'   Macro created 08/11/98 by Keith Gray
'   Macro modified 08/06/99 by Chua Choon Hian
'       To restore the original default printer
'       Change fixed path to temp directory by using environment variables
'   Macro modified 01/07/99 by Keith Gray
'       for multi-page documents
'
' (Version 1.04):
'   Heiko Teichmeier 03.11.2001
'   heiko@tei-lin-net.de
 
Dim whfc As Object
Dim OLE_Return As Long
Dim faxnum As String
Dim SpoolFile As String
Dim Title As String
Dim WhfcPrinter As String
Dim Default_Active_Printer As String
Dim Box_Return As Integer
'RückgabeMeldung
Dim Meldung As String
Dim Doc_name As String
 
Doc_name = ActiveDocument.Name
SpoolFile = Environ("Temp") & "\fax.ps"
Title = "Whfc Send_Serienfax_Aktuelle_Seite-Makro ( Version 1.04 )"
 
faxnum = ActiveDocument.MailMerge.DataSource.DataFields("Fax_Nr")
 
WhfcPrinter = "HylaFAX"
Default_Active_Printer = ActivePrinter
ActivePrinter = WhfcPrinter$
 
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, _
    Item:=wdPrintDocumentContent, Copies:=1, Pages:="", _
    PageType:=wdPrintAllPages, Collate:=True, Background:=True, _
    PrintToFile:=True, OutputFileName:=SpoolFile, Append:=False
 
  Set whfc = CreateObject("WHFC.OleSrv")
  OLE_Return = whfc.SendFax(SpoolFile, faxnum, True)
    If OLE_Return <= 0 Then
        Fax_fehler OLE_Return, Title
    Else
        Fax_ok Doc_name, Str(OLE_Return), Title
    End If
  Set whfc = Nothing
 
ActivePrinter = Default_Active_Printer$
End Sub
Sub SendSerienfaxAlleSeiten()
'
' SendSerienfaxAlleSeiten Macro
'   soll alle Seiten eines Serienbriefes mit Feld "Fax_Nr" als
'   Zielnummer versenden
'
' Urversion:
'   MergeFax Macro (Version 1.03)
'   Macro created 08/11/98 by Keith Gray
'
' (Version 1.04):
'   Heiko Teichmeier 03.11.2001
'   heiko@tei-lin-net.de
 
Dim whfc As Object
Dim OLE_Return As Long
Dim faxnum As String
Dim SpoolFile As String
Dim Title As String
Dim WhfcPrinter As String
Dim Default_Active_Printer As String
Dim Box_Return As Integer
'RückgabeMeldung
Dim Meldung As String
Dim Doc_name As String
 
Doc_name = ActiveDocument.Name
 
ActiveDocument.MailMerge.ViewMailMergeFieldCodes = True
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdLastRecord
Numb_Faxes = ActiveDocument.MailMerge.DataSource.ActiveRecord
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdFirstRecord
For I = 1 To Numb_Faxes
SpoolFile = Environ("Temp") & "\fax" & I & ".ps"
Title = "WHFC Send_Serienfax_Alle_Seiten-Makro ( Version 1.04 )"
 
faxnum = ActiveDocument.MailMerge.DataSource.DataFields("Fax_Nr")
 
WhfcPrinter = "HylaFAX"
Default_Active_Printer = ActivePrinter
ActivePrinter = WhfcPrinter$
 
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, _
    Item:=wdPrintDocumentContent, Copies:=1, Pages:="", _
    PageType:=wdPrintAllPages, Collate:=True, Background:=True, _
    PrintToFile:=True, OutputFileName:=SpoolFile, Append:=False
 
  Set whfc = CreateObject("WHFC.OleSrv")
  OLE_Return = whfc.SendFax(SpoolFile, faxnum, True)
    If OLE_Return <= 0 Then
        Fax_fehler OLE_Return, Title
    Else
        Fax_ok Doc_name, Str(OLE_Return), Title
    End If
  Set whfc = Nothing
ActiveDocument.MailMerge.DataSource.ActiveRecord = wdNextRecord
Next I
 
ActivePrinter = Default_Active_Printer$
End Sub
Sub Fax_fehler(ret_wert, Title)
' Fehlermeldung nach Rückgabewert definieren und ausgeben
    If ret_wert = -1 Then
        Meldung = "Fehler ==> Fax kann nicht zum HylaFAX-Server gesendet werden!"
    ElseIf ret_wert = -2 Then
        Meldung = "Fehler ==> Ungültige Fax-Nummer!"
    ElseIf ret_wert = -3 Then
        Meldung = "Fehler ==> Fax-Übertragung vom User unterbrochen. Der User hat auf den 'Abbruch-Button' geklickt!"
    ElseIf ret_wert = -4 Then
        Meldung = "Fehler ==> Die Fax-Spool-Datei wurde nicht gefunden!"
    Else
        Meldung = "Fehler beim Versenden!"
    End If
    Box_Return = MsgBox(Meldung, 16, Title)
End Sub
' Erfolgsmeldung ausgeben
Sub Fax_ok(Doc_name, Job_nr, Title)
    Meldung = "Dokument: " & Doc_name & " wurde als Fax-Auftrag Nr. " & Job_nr & " versandt!"
    Box_Return = MsgBox(Meldung, 0, Title)
End Sub
' Datensatz-Feld "Fax_Nr" nicht vorhanden - Fehlermeldung ausgeben
Sub FieldFaxNrNichtGefunden(Doc_name, Job_nr, Title)
    Meldung = "Datensatz-Feld 'Fax_Nr' nicht gefunden!"
    Box_Return = MsgBox(Meldung, 16, Title)
End Sub