/* $VER: DruckeEintrag.adm 1.4 (19.2.1995) Druckt einen Eintrag mit allen Daten (samt ExternInfo-Datei, falls vorhanden) von Carsten Kullik und Jan Geißler. 1.0 [CaK] 9.6.94 - Erste Version. 1.1 [jan] 13.5.95 - Völlig überarbeitet. Anpassung an neue Stemvariablen. 1.2 [jan] 15.6.95 - EXTFILE-Parameter bei GETADDRESS für ADM2.01 1.3 [jan] 25.10.95 - Bei mehreren Telefonnummern war Trennung durch Komma im Ausdruck fehlerhaft - Externes File wurde nicht gefunden aufgrund falschen Parameters bei GetAddress. - Ausdruck des externen Files konnte aufgrund falschen OPEN()-Parameters noch nie funktioniert haben. 1.4 [jan] 19.2.96 - Druckt nun auch Gruppennamen aus - Kommentierung zumindest ein bißchen verbessert */ OPTIONS RESULTS /* ----- Variablendefinitionen */ file = "" ok = "OK" ausgabe = 0 /* Ausgabe Info-File vorsorglich sperren */ LF = '0A'X /* Linefeed*/ /* ----- Rexx-Library öffnen */ IF ~SHOW("L","rexxreqtools.library") THEN CALL ADDLIB("rexxreqtools.library",0,-30,0) /* ----- Druckerausgabe öffnen */ IF ~OPEN(drucker,"PRT:","W") THEN DO /*Druckerausgabe vorbereiten*/ ECHO "Kann Druckerausgabe nicht einleiten!" EXIT END /* ----- Adresse holen */ GETADDRESS ADM EXTFILE /* Speicheradresse des akt. Datensatzes */ /* ----- Frage, ob ExtInfo-File ausdrucken, falls existent? */ IF EXISTS(ADM.EXTFILE) THEN DO Tags = "rt_reqpos=reqpos_centerscr rtez_flags=ezreqf_centertext" Frage = "Ausdruck des Datensatzes" datei LF ||"mit externer Datei (ExternInfo)?" ausgabe = rtezrequest(Frage,"Ja|Nein",,Tags) END text = "1B"x || "[2w" CALL Druckzeile /* ----- Name generieren & drucken */ nam = "" IF ADM.FULLNAME ~= "" THEN DO nam = STRIP(ADM.SALUTATION STRIP(ADM.FIRSTNAME STRIP( ADM.TITLE ADM.LASTNAME))) END IF ADM.ID ~= "" THEN nam = STRIP(nam " (ID:" ADM.ID || ")") IF ADM.SORT = "COMPANY" THEN DO text = ADM.COMPANY CALL Druckzeile IF nam ~= "" THEN DO text = nam CALL Druckzeile END END; ELSE DO IF nam ~= "" THEN DO text = nam CALL Druckzeile END text = ADM.COMPANY CALL Druckzeile END; /* ----- Adresse ausdrucken */ text = LF || ADM.ADDRESS1 CALL Druckzeile text = ADM.ADDRESS2 CALL Druckzeile text = STRIP(ADM.POSTCODE ADM.CITY) IF ADM.COUNTRY ~= "" THEN text = text || "," ADM.COUNTRY CALL Druckzeile /* ----- Telefonnummern ausdrucken */ text = ""; pp = POS("|",ADM.TELEPHONE) DO WHILE pp > 0 ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1) ADM.TELEPHONE = INSERT(", ",ADM.TELEPHONE,pp-1) pp = POS("|",ADM.TELEPHONE) END; pp = POS(" ",ADM.TELEPHONE) DO WHILE pp > 0 ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1) pp = POS(" ",ADM.TELEPHONE) END; pp = POS(" ,",ADM.TELEPHONE) DO WHILE pp > 0 ADM.TELEPHONE = DELSTR(ADM.TELEPHONE,pp,1) pp = POS(" ,",ADM.TELEPHONE) END; IF ADM.TELEPHONE ~= "" THEN text = text || "Tel.:" ADM.TELEPHONE CALL Druckzeile text = "" IF ADM.FAX ~= "" THEN text = "Fax: " ADM.FAX CALL Druckzeile /* ----- Geburtstag */ text = "" IF ADM.BIRTHDAY ~= "" THEN text = LF || "Geb.:" ADM.BIRTHDAY CALL Druckzeile /* ----- Gruppennamen mit ausdrucken */ GETGROUPNAMES stem text = "" IF ADM.FLAGS ~= "" THEN text = LF|| text || "In ADM-Gruppen:" IF POS("A",ADM.FLAGS) > 0 THEN text = text stem.1 IF POS("B",ADM.FLAGS) > 0 THEN text = text stem.2 IF POS("C",ADM.FLAGS) > 0 THEN text = text stem.3 IF POS("D",ADM.FLAGS) > 0 THEN text = text stem.4 IF POS("E",ADM.FLAGS) > 0 THEN text = text stem.5 IF POS("F",ADM.FLAGS) > 0 THEN text = text stem.6 IF POS("G",ADM.FLAGS) > 0 THEN text = text stem.7 IF POS("H",ADM.FLAGS) > 0 THEN text = text stem.8 IF POS("I",ADM.FLAGS) > 0 THEN text = text stem.9 IF POS("J",ADM.FLAGS) > 0 THEN text = text stem.10 CALL Druckzeile /* ----- Bemerkungsfeld */ text = "" IF ADM.REMARK1 ~= "" THEN text = LF || ADM.REMARK1 CALL Druckzeile /* ----- ExternInfo ausdrucken! */ IF ausgabe THEN DO /*Wenn Ausgabe erwuenscht,*/ text = LF /*1 Linefeed einfuegen und*/ CALL Druckzeile IF OPEN(datei,ADM.EXTFILE,"R") THEN DO /*das externe Info-File oeffnen*/ DO WHILE ~EOF(datei) /*Dateiende erreicht? Nein,*/ text = READLN(datei) /*Zeilen einlesen und an*/ call Druckzeile /*ok = WRITELN(drucker,text) Drucker ausgeben*/ END ok = CLOSE(datei) END ELSE SAY "Kann Externe Datei nicht öffnen!" END /* ----- Druckerausgabe schließen */ ok = CLOSE(drucker) EXIT /* ===== PROGRAMMENDE ============= */ /* ----- Unterroutine: Zeile drucken */ Druckzeile: text = STRIP(text,"T"," ") /*Leerzeichen am Ende entfernen*/ text = STRIP(text,"T",",") /*Kommas am Ende entfernen*/ IF text ~= "" THEN /*Wenn Zeile nicht leer...*/ ok = WRITELN(drucker,text) /*Zeile ausgeben*/ RETURN