home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / adm / arexx / adm-arexxmakros.lha / Ausdruck / PocketList_DeskJet.adm < prev    next >
Text File  |  1995-06-04  |  4KB  |  137 lines

  1. /* $VER: PocketList_DeskJet.adm 0.3 (16.3.95)
  2.  
  3.    Dieses Skript gibt eine Adreßliste auf einem HP DeskJet oder
  4.    kompatiblem aus. Für kleine Adresslisten, z.B. im Geldbeutel.
  5.  
  6.    Aufruf vom ADM-ARexx-Menue.
  7.  
  8.    Written by Werner Braun. All rights reserved.
  9.  
  10.       0.1  10.10.94  [Werner Braun]  - Erste Version (TimeSys.adm)
  11.       0.2  10.02.95  [Ralf Staiger]  - Als Listenausgabe abgewandelt
  12.       0.3  16.03.95  [jan]           - Ausgabedatei nun per Eingaberequester
  13.                                        wählbar.
  14.                                      - Anpassung an >1.45: ADM.REMARK2
  15.                                        entfällt
  16.                                      - Telefonnummer im Ausdruck aus Platz-
  17.                                        gründen ohne Leerzeichen.
  18.                                      - Bemerkungsbreite auf 60 Zeichen max.
  19.                                        limitiert.
  20.  
  21.    Basiert auf TimeSys von Werner Braun/Jan Geissler.
  22.  
  23.    */
  24.  
  25. /* Spaltenbreiten */
  26. sp1 = 20
  27. sp2 = 20
  28. sp3 = 30
  29. sp4 = 7
  30. sp5 = 25
  31. sp6 = 15
  32. sp7 = 60
  33. NL  = '0a'x
  34.  
  35. /* Rückgabewerte zulassen   */
  36. OPTIONS RESULTS
  37.  
  38. /* Drucker oeffnen (zum test mit ram:adm.out arbeiten, spart Papier) */
  39. call addlib("rexxreqtools.library",0,-30,0)
  40. outfile = rtgetstring("PRT:",'Ausgabedatei (PRT: = Drucker, "" = Abbruch)',"Geldbeutel-Adreßliste per DeskJet")
  41. IF outfile = "" THEN EXIT
  42.  
  43. /* Anzahl Adressen holen    */
  44. ADDRINMEM
  45. numadr = RESULT
  46.  
  47. /* Fehler ausgeben, falls Adre_speicher leer  */
  48. IF numadr<1 THEN DO
  49.    SAY "Keine Adressen im Speicher"
  50.    EXIT
  51. END
  52.  
  53. /* Ausgabedatei vffnen     */
  54. IF ~OPEN(datei,outfile,"W") THEN EXIT
  55.  
  56.  
  57. /* Ersten Eintr. aktivieren */
  58. ACTIVATEFIRST
  59.  
  60.  
  61. /* 24cpi LGothic 6Punkt Hvhe, 12 lpi  einstellen mit esc-Sequenz durch prt:
  62.    durchreichen*/
  63.  
  64. ok = WriteLn(datei,"1b"x"[22""r" || "1b"x || "(8U" || "1b"x || "(s24h6v6T" || "0a1b"x || "&l12D"||"0a"x);
  65.  
  66. /* Datum bereitstellen */
  67. Datum=Date(European)
  68. Datum=Overlay(".",Datum,3,1)
  69. Datum=Overlay(".",Datum,6,1)
  70.  
  71. S=1
  72. Header="                 Adressliste vom " || Datum
  73. Header=insert(Header," ",0,110," ")|| "Seite: "||S
  74.  
  75. Z=1
  76. ok = WriteLn(datei,Header);
  77. ok = WriteLn(datei," ");
  78.  
  79.  
  80. DO FOR numAdr UNTIL RESULT=-1  /* alle Adressen abarbeiten */
  81.  
  82.   GETADDRESS ADM                    /* Adresse -> Stemvar ADM   */
  83.  
  84.   IF RESULT=0 THEN DO
  85.     /* Ausgabe ... */
  86.     IF Z>=124 then DO
  87.       ok=writech(datei,"0C"x)      /* neue Seite */
  88.       Z=1
  89.       S=S+1
  90.       Header="                 Adressliste vom " || Datum
  91.       Header=insert(Header," ",0,110," ")|| "Seite: "||S
  92.       ok = WriteLn(datei,Header);
  93.       ok = WriteLn(datei," ");
  94.     END
  95.  
  96.     Zeile1 = ADM.LASTNAME || ADM.COMPANY
  97.  
  98.     i =  sp1
  99.     Zeile1 = insert(Zeile1,"",0,i," ")
  100.     Zeile1 = insert(Zeile1, ADM.FIRSTNAME)
  101.  
  102.     i = i + sp2
  103.     Zeile1 = insert(Zeile1,"",0,i," ")
  104.     Zeile1 = insert(Zeile1, ADM.ADDRESS1)
  105.  
  106.     i = i + sp3
  107.     Zeile1 = insert(Zeile1,"",0,i," ")
  108.     Zeile1 = insert(Zeile1, ADM.POSTCODE)
  109.  
  110.     i = i + sp4
  111.     Zeile1 = insert(Zeile1,"",0,i," ")
  112.     Zeile1 = insert(Zeile1, ADM.CITY)
  113.  
  114.     i = i + sp5
  115.     Zeile1 = insert(Zeile1,"",0,i," ")
  116.     Zeile1 = insert(Zeile1, SPACE(ADM.TELEPHONE,0))
  117.  
  118.     Do While pos(NL,ADM.REMARK1) > 0
  119.       ADM.REMARK1 = DelStr(ADM.REMARK1,pos(NL,ADM.REMARK1),1)
  120.     End
  121.  
  122.     i = i + sp6
  123.     Zeile1 = insert(Zeile1,"",0,i," ")
  124.     Zeile1 = insert(Zeile1, ADM.REMARK1)
  125.  
  126.     ok=WriteLn(datei,Zeile1)
  127.  
  128.     z=z+1 /* Zeilenzahl um 1 erhvhen */
  129.  
  130.     ACTIVATENEXT                   /* Akt. naechsten Eintrag */
  131.   END
  132.  
  133. END
  134. /* letzte Seite auswerfen */
  135. ok=writech(datei,"0C"x)
  136. ok = CLOSE(datei)
  137.