home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
system
/
printfiles
/
deutsch
/
beispiele
/
serienbrief.rexx
< prev
Wrap
OS/2 REXX Batch file
|
1995-02-27
|
4KB
|
94 lines
/* printfiles Arexx Macro */
/* © 1992 by K. Klingbeil */
/* erstell Serienbriefe aus einer Vorlage und einer */
/* Adressendatei */
/* Verwendung: rx serienbrief <brief> <adressen> */
options results /* Ergebnisse anfordern */
if ~show(ports,'PRINTFILES')then do /* Läuft PrintFiles schon ? */
address command 'printfiles' /* wenn nicht, dann ein Startversuch */
address command 'sys:rexxc/WaitForPort PRINTFILES' /* noch ein bisschen abwarten */
end /* Noch'n Versuch */
if ~(show(ports,'PRINTFILES')) then return 5 /* Rückgabewert 5 bei Mißerfolg */
parse arg argumente
Brief = subword(argumente,1,1) /* Der Name der Vorlage */
Namen = subword(argumente,2,1) /* Der Name der Adressendatei */
if Brief == '' then
do
say 'Namen der Briefvorlage fehlt'
exit
end
if Namen == '' then
do
say 'Namen der Adressendatei fehlt'
exit
end
port = "TESTPORT" /* Der Name unseres Messageports */
if ~Show('L',"rexxsupport.library")
then do
addlib('rexxsupport.library',0,-30,0)
end /* rexxsupport.library einbinden */
if Show('L',"rexxsuport.library") then exit
if OpenPort(port) /* Messageport einrichten */
then do
address printfiles 'replyport TESTPORT' /* PrintFiles den Namen des Messageports */
/* mitteilen */
address printfiles 'replace on' /* Ersetzen-Funktion einschalten */
address printfiles 'ff on' /* Seitenvorschub am Briefende */
open('p',Namen,'r') /* Adressendatei öffnen */
do while ~eof('p')
name = readln('p')
strasse = readln('p')
ort = readln('p') /* Datensatz lesen */
if eof('p') /* am Ende ? */
then do
address printfiles 'removereplace vor' /* wenn ja, Ersetzungen löschen */
address printfiles 'removereplace nach'
address printfiles 'removereplace strasse'
address printfiles 'removereplace ort'
address printfiles 'removereplace anrede'
address printfiles 'removereplace anrede_1'
ClosePort(port) /* Messageport entfernen */
exit /* und Ende */
end
anrede = subword(name,1,1) /* ansonsten Ersetzungen erstellen */
vorname = subword(name,2,1)
nachname = subword(name,3,1)
address printfiles 'removereplace vor'
address printfiles 'removereplace nach'
address printfiles 'removereplace strasse'
address printfiles 'removereplace ort'
address printfiles 'removereplace anrede'
address printfiles 'removereplace anrede_1'
dv = 'vor' vorname
dn = 'nach' nachname
anr = 'anrede' anrede
if(anrede == 'Herr') then anr1 = 'anrede_1' 'Sehr geehrter Herr'
else
if(anrede == 'Frau') then anr1 = 'anrede_1' 'Sehr geehrte Frau'
st = 'strasse' strasse
ot = 'ort' ort
address printfiles insertreplace dv /* Ersetzungen in die Textersatzliste */
address printfiles insertreplace dn /* einfügen */
address printfiles insertreplace st
address printfiles insertreplace ot
address printfiles insertreplace anr
address printfiles insertreplace anr1
address printfiles insfile ''Brief /* Briefvorlage in die Druckliste */
/* einfügen */
address printfiles 'print' /* Druck starten */
WaitPkt(port) /* auf das beenden des Druckvorgangs */
/* warten */
p = Getpkt(port); /* Nachricht abholen */
Reply(p,0) /* und zurückgeben */
end
end