home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / adm / arexx / adm-arexxmakros.lha / Ausdruck / DruckeEintrag.adm < prev    next >
Text File  |  1996-02-19  |  5KB  |  199 lines

  1. /* $VER: DruckeEintrag.adm 1.4 (19.2.1995)
  2.  
  3.    Druckt einen Eintrag mit allen Daten
  4.    (samt ExternInfo-Datei, falls vorhanden)
  5.  
  6.    von Carsten Kullik und Jan Geißler.
  7.  
  8.    1.0 [CaK]  9.6.94   - Erste Version.
  9.    1.1 [jan]  13.5.95  - Völlig überarbeitet.
  10.                          Anpassung an neue Stemvariablen.
  11.    1.2 [jan]  15.6.95  - EXTFILE-Parameter bei GETADDRESS
  12.                          für ADM2.01
  13.    1.3 [jan]  25.10.95 - Bei mehreren Telefonnummern war Trennung durch
  14.                          Komma im Ausdruck fehlerhaft
  15.                        - Externes File wurde nicht gefunden aufgrund
  16.                          falschen Parameters bei GetAddress.
  17.                        - Ausdruck des externen Files konnte aufgrund
  18.                          falschen OPEN()-Parameters noch nie funktioniert
  19.                          haben.
  20.    1.4 [jan]  19.2.96  - Druckt nun auch Gruppennamen aus
  21.                        - Kommentierung zumindest ein bißchen verbessert
  22.  
  23. */
  24.  
  25.  
  26. OPTIONS RESULTS
  27.  
  28.  
  29. /* ----- Variablendefinitionen */
  30.  
  31. file    = ""
  32. ok      = "OK"
  33. ausgabe = 0           /* Ausgabe Info-File vorsorglich sperren */
  34. LF      = '0A'X       /* Linefeed*/
  35.  
  36.  
  37. /* ----- Rexx-Library öffnen */
  38.  
  39. IF ~SHOW("L","rexxreqtools.library") THEN
  40.    CALL ADDLIB("rexxreqtools.library",0,-30,0)
  41.  
  42.  
  43. /* ----- Druckerausgabe öffnen */
  44.  
  45.  
  46. IF ~OPEN(drucker,"PRT:","W") THEN DO   /*Druckerausgabe vorbereiten*/
  47.    ECHO "Kann Druckerausgabe nicht einleiten!"
  48.    EXIT
  49. END
  50.  
  51.  
  52. /* ----- Adresse holen */
  53.  
  54. GETADDRESS ADM EXTFILE    /* Speicheradresse des akt. Datensatzes */
  55.  
  56.  
  57. /* ----- Frage, ob ExtInfo-File ausdrucken, falls existent? */
  58.  
  59. IF EXISTS(ADM.EXTFILE) THEN DO
  60.    Tags = "rt_reqpos=reqpos_centerscr rtez_flags=ezreqf_centertext"
  61.    Frage = "Ausdruck des Datensatzes" datei LF ||"mit externer Datei (ExternInfo)?"
  62.    ausgabe = rtezrequest(Frage,"Ja|Nein",,Tags)
  63. END
  64.  
  65.  
  66. /* ----- Name generieren & drucken */
  67.  
  68. nam = ""
  69. IF ADM.FULLNAME ~= "" THEN DO
  70.    nam = STRIP(ADM.SALUTATION STRIP(ADM.FIRSTNAME STRIP( ADM.TITLE ADM.LASTNAME)))
  71. END
  72. IF ADM.ID ~= "" THEN nam = STRIP(nam " (ID:" ADM.ID || ")")
  73.  
  74. IF ADM.SORT = "COMPANY" THEN DO
  75.    text = ADM.COMPANY
  76.    CALL Druckzeile
  77.    IF nam ~= "" THEN DO
  78.       text = nam
  79.       CALL Druckzeile
  80.    END
  81. END; ELSE DO
  82.    IF nam ~= "" THEN DO
  83.       text = nam
  84.       CALL Druckzeile
  85.    END
  86.    text = ADM.COMPANY
  87.    CALL Druckzeile
  88. END;
  89.  
  90.  
  91. /* ----- Adresse ausdrucken */
  92.  
  93. text = LF || ADM.ADDRESS1
  94. CALL Druckzeile
  95. text = ADM.ADDRESS2
  96. CALL Druckzeile
  97. text = STRIP(ADM.POSTCODE ADM.CITY)
  98. IF ADM.COUNTRY ~= "" THEN text = text || "," ADM.COUNTRY
  99. CALL Druckzeile
  100.  
  101.  
  102. /* ----- Telefonnummern ausdrucken */
  103.  
  104. text = ""; pp = POS("|",ADM.TELEPHONE)
  105. DO WHILE pp > 0
  106.    ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1)
  107.    ADM.TELEPHONE = INSERT(", ",ADM.TELEPHONE,pp-1)
  108.    pp = POS("|",ADM.TELEPHONE)
  109. END;
  110.  
  111. pp = POS("  ",ADM.TELEPHONE)
  112. DO WHILE pp > 0
  113.    ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1)
  114. pp = POS("  ",ADM.TELEPHONE)
  115. END;
  116.  
  117. pp = POS(" ,",ADM.TELEPHONE)
  118. DO WHILE pp > 0
  119.    ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1)
  120. pp = POS(" ,",ADM.TELEPHONE)
  121. END;
  122.  
  123. IF ADM.TELEPHONE ~= "" THEN text = text || "Tel.:" ADM.TELEPHONE
  124. CALL Druckzeile
  125.  
  126. text = ""
  127. IF ADM.FAX ~= "" THEN text = "Fax: " ADM.FAX
  128. CALL Druckzeile
  129.  
  130.  
  131. /* ----- Geburtstag */
  132.  
  133. text = ""
  134. IF ADM.BIRTHDAY ~= "" THEN text = LF || "Geb.:" ADM.BIRTHDAY
  135. CALL Druckzeile
  136.  
  137.  
  138. /* ----- Gruppennamen mit ausdrucken */
  139.  
  140. GETGROUPNAMES stem
  141. text = ""
  142. IF ADM.FLAGS ~= "" THEN text = LF|| text || "In ADM-Gruppen:"
  143. IF POS("A",ADM.FLAGS) > 0 THEN text = text stem.1
  144. IF POS("B",ADM.FLAGS) > 0 THEN text = text stem.2
  145. IF POS("C",ADM.FLAGS) > 0 THEN text = text stem.3
  146. IF POS("D",ADM.FLAGS) > 0 THEN text = text stem.4
  147. IF POS("E",ADM.FLAGS) > 0 THEN text = text stem.5
  148. IF POS("F",ADM.FLAGS) > 0 THEN text = text stem.6
  149. IF POS("G",ADM.FLAGS) > 0 THEN text = text stem.7
  150. IF POS("H",ADM.FLAGS) > 0 THEN text = text stem.8
  151. IF POS("I",ADM.FLAGS) > 0 THEN text = text stem.9
  152. IF POS("J",ADM.FLAGS) > 0 THEN text = text stem.10
  153. CALL Druckzeile
  154.  
  155.  
  156. /* ----- Bemerkungsfeld */
  157.  
  158. text = ""
  159. IF ADM.REMARK1 ~= "" THEN text = LF || ADM.REMARK1
  160. CALL Druckzeile
  161.  
  162.  
  163. /* ----- ExternInfo ausdrucken! */
  164.  
  165. IF ausgabe THEN DO                          /*Wenn Ausgabe erwuenscht,*/
  166.    text = LF                                /*1 Linefeed einfuegen und*/
  167.    CALL Druckzeile
  168.       IF OPEN(datei,ADM.EXTFILE,"R") THEN DO   /*das externe Info-File oeffnen*/
  169.          DO WHILE ~EOF(datei)            /*Dateiende erreicht? Nein,*/
  170.             text = READLN(datei)         /*Zeilen einlesen und an*/
  171.             call Druckzeile
  172.             /*ok = WRITELN(drucker,text)    Drucker ausgeben*/
  173.          END
  174.          ok = CLOSE(datei)
  175.       END
  176.       ELSE SAY "Kann Externe Datei nicht öffnen!"
  177. END
  178.  
  179. /* ----- Druckerausgabe schließen */
  180.  
  181. ok = CLOSE(drucker)
  182.  
  183.  
  184. EXIT
  185.  
  186. /* ===== PROGRAMMENDE =============  */
  187.  
  188.  
  189. /* ----- Unterroutine: Zeile drucken */
  190.  
  191. Druckzeile:
  192.    text = STRIP(text,"T"," ")           /*Leerzeichen am Ende entfernen*/
  193.    text = STRIP(text,"T",",")           /*Kommas am Ende entfernen*/
  194.  
  195.    IF text ~= "" THEN                   /*Wenn Zeile nicht leer...*/
  196.       ok = WRITELN(drucker,text)        /*Zeile ausgeben*/
  197.  
  198. RETURN
  199.