home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / system / printfiles / deutsch / beispiele / serienbrief.rexx < prev   
OS/2 REXX Batch file  |  1995-02-27  |  4KB  |  94 lines

  1. /* printfiles Arexx Macro                              */
  2. /* © 1992 by K. Klingbeil                              */
  3. /* erstell Serienbriefe aus einer Vorlage und einer    */
  4. /* Adressendatei                                       */
  5. /* Verwendung:  rx serienbrief <brief> <adressen>      */
  6.  
  7. options results   /* Ergebnisse anfordern */
  8. if ~show(ports,'PRINTFILES')then do   /* Läuft PrintFiles schon ? */
  9.     address command 'printfiles'   /* wenn nicht, dann ein Startversuch */
  10. address command 'sys:rexxc/WaitForPort PRINTFILES'  /* noch ein bisschen abwarten */
  11. end   /* Noch'n Versuch */
  12. if ~(show(ports,'PRINTFILES')) then return 5   /* Rückgabewert 5 bei Mißerfolg */
  13.  
  14. parse arg argumente
  15.  
  16. Brief = subword(argumente,1,1)      /* Der Name der Vorlage */
  17. Namen = subword(argumente,2,1)      /* Der Name der Adressendatei */
  18.  
  19. if  Brief == '' then
  20. do
  21.   say 'Namen der Briefvorlage fehlt'
  22.   exit
  23. end
  24.  
  25. if  Namen == ''  then
  26. do
  27.   say 'Namen der Adressendatei fehlt'
  28.   exit
  29. end
  30.  
  31. port = "TESTPORT"                 /* Der Name unseres Messageports */
  32.  
  33. if  ~Show('L',"rexxsupport.library")
  34. then do
  35.      addlib('rexxsupport.library',0,-30,0)
  36.      end                                        /* rexxsupport.library einbinden */
  37.  
  38. if Show('L',"rexxsuport.library") then exit
  39. if OpenPort(port)                                  /* Messageport einrichten */
  40.    then do
  41.           address printfiles 'replyport TESTPORT' /* PrintFiles den Namen des Messageports  */
  42.                                                   /* mitteilen  */
  43.           address printfiles 'replace on'         /* Ersetzen-Funktion einschalten */
  44.           address printfiles 'ff on'              /* Seitenvorschub am Briefende   */
  45.           open('p',Namen,'r')                     /* Adressendatei öffnen          */
  46.           do while ~eof('p')
  47.               name = readln('p')
  48.               strasse  = readln('p')
  49.               ort      = readln('p')               /* Datensatz lesen */
  50.               if eof('p')                                   /* am Ende ? */
  51.               then do
  52.                address printfiles 'removereplace vor'       /* wenn ja, Ersetzungen löschen */
  53.                address printfiles 'removereplace nach'
  54.                address printfiles 'removereplace strasse'
  55.                address printfiles 'removereplace ort'
  56.                address printfiles 'removereplace anrede'
  57.                address printfiles 'removereplace anrede_1'
  58.                ClosePort(port)                              /* Messageport entfernen */
  59.                exit                                         /* und Ende */
  60.               end
  61.               anrede   = subword(name,1,1)                  /* ansonsten Ersetzungen erstellen */
  62.               vorname  = subword(name,2,1)
  63.               nachname = subword(name,3,1)
  64.               address printfiles 'removereplace vor'
  65.               address printfiles 'removereplace nach'
  66.               address printfiles 'removereplace strasse'
  67.               address printfiles 'removereplace ort'
  68.               address printfiles 'removereplace anrede'
  69.               address printfiles 'removereplace anrede_1'
  70.               dv = 'vor' vorname
  71.               dn = 'nach' nachname
  72.               anr = 'anrede' anrede
  73.               if(anrede == 'Herr') then anr1 = 'anrede_1' 'Sehr geehrter Herr'
  74.                else
  75.                 if(anrede == 'Frau') then anr1 = 'anrede_1' 'Sehr geehrte Frau'
  76.               st   = 'strasse' strasse
  77.               ot   = 'ort' ort
  78.               address printfiles insertreplace dv          /* Ersetzungen in die Textersatzliste */
  79.               address printfiles insertreplace dn          /* einfügen */
  80.               address printfiles insertreplace st
  81.               address printfiles insertreplace ot
  82.               address printfiles insertreplace anr
  83.               address printfiles insertreplace anr1
  84.               address printfiles insfile ''Brief            /* Briefvorlage in die Druckliste  */
  85.                                                             /* einfügen */
  86.               address printfiles 'print'                    /* Druck starten */
  87.               WaitPkt(port)                                 /* auf das beenden des Druckvorgangs */
  88.                                                             /* warten */
  89.               p = Getpkt(port);                             /* Nachricht abholen */
  90.               Reply(p,0)                                    /* und zurückgeben   */
  91.           end
  92.  
  93.      end
  94.