home *** CD-ROM | disk | FTP | other *** search
- /* $VER: TeX_TelList.adm 0.9 (23.2.96)
-
- basierend auf List.rexx 1.3 von Jan Geissler
- und TrapFax-Export.adm 1.1 (26.3.95) von Kai Bolay.
-
- Written by Thomas Schröder. */
-
-
- NL = '0a'x
-
- OPTIONS RESULTS
-
- SIGNAL ON BREAK_C
- SIGNAL ON BREAK_D
- SIGNAL ON BREAK_E
- SIGNAL ON BREAK_F
- SIGNAL ON ERROR
- SIGNAL ON HALT
- SIGNAL ON IOERR
- SIGNAL ON SYNTAX
-
-
- /* RexxReqTools-Library öffnen */
-
- reqname = "rexxreqtools.library"
- if ~show("L", reqname) then
- if ~addlib(reqname, 0, -30, 0) then do
- say reqname "not found!"
- EXIT
- end
-
- an = rtezrequest("Ausgabeformat","_Standard|_Konfiguration|_Abbruch")
- IF an = 1 THEN DO
-
- /* VOREINSTELLUNGEN */
-
- groesse = 11
- ausgabeart = "SMALLBOOKLET"
- seite = "TWOSIDE"
-
- /* ENDE VOREINSTELLUNGEN */
-
- END
-
- IF an = 0 THEN EXIT
-
- IF an = 2 THEN DO
- an2 = rtezrequest("Auf welche Art soll die Liste ausgegeben werden?","_Booklet|_Kleines Booklet|_Normal")
- SELECT
- WHEN an2 = 0 THEN ausgabeart = "NOBOOKLET"
- WHEN an2 = 1 THEN ausgabeart = "BOOKLET"
- WHEN an2 = 2 THEN ausgabeart = "SMALLBOOKLET"
- END
-
- IF ausgabeart = "NOBOOKLET" THEN DO
- an3 = rtezrequest("Ein- oder zweiseitig?","_Einseitig|_Zweiseitig")
- SELECT
- WHEN an3 = 0 THEN seite = "TWOSIDE"
- WHEN an3 = 1 THEN seite = "ONESIDE"
- END
-
- END
-
- an4 = rtezrequest("Verwendete Fontgröße","1_0pt|1_1pt|1_2pt")
- SELECT
- WHEN an4 = 0 THEN groesse = 12
- WHEN an4 = 1 THEN groesse = 10
- WHEN an4 = 2 THEN groesse = 11
- END
-
-
- END;
-
-
- OPTIONS RESULTS /* Rückgabewerte zulassen */
-
- ADDRINMEM /* Anzahl Adressen holen */
- numadr = RESULT
-
- IF ~OPEN(datei,"t:TelListe.tex","W") THEN DO /* Ausgabedatei öffnen */
- SAY "Kann Ausgabedatei nicht öffnen!"
- EXIT
- END
-
- ACTIVATEFIRST /* Ersten Eintr. aktivieren */
-
- /* ----------------------------------------------------------------------
- AUSGABE
- ---------------------------------------------------------------------- */
-
- IF ausgabeart = "SMALLBOOKLET" THEN DO
- text = "\documentclass["||groesse||"pt,a5paper,twoside]{article}"
- CALL DruckZeile
- END
- ELSE DO
- IF seite = "ONESIDE" THEN DO
- text = "\documentclass["||groesse||"pt,a4paper]{article}"
- CALL DruckZeile
- END
- ELSE DO
- text = "\documentclass["||groesse||"pt,a4paper,twoside]{article}"
- CALL DruckZeile
- END
- END
-
- text = "\parindent0cm"
- CALL DruckZeile
- text = "\columnsep1cm"
- CALL DruckZeile
-
- IF ausgabeart = "NOBOOKLET" THEN DO
- text = "\usepackage{german,multicol,wasysym,a4}"
- CALL DruckZeile
- END
- ELSE DO
- text = "\usepackage{german,multicol,wasysym}"
- CALL DruckZeile
- END
-
- text = "\usepackage[T1]{fontenc}"
- CALL DruckZeile
- text = "\usepackage[latin1]{inputenc}"
- CALL DruckZeile
- text = "\begin{document}"
- CALL DruckZeile
- text = "\begin{multicols}{2}"
- CALL DruckZeile
- text = "\hbadness=10000"
- CALL DruckZeile
-
-
- DO FOR numAdr
-
- text = "\begin{samepage}"
- CALL DruckZeile
-
- GETADDRESS ADM /* Adresse -> Stemvar ADM */
-
- text = "\begin{bf}" ADM.COMPANY"\end{bf}"
- CALL DruckZeile
- text = "\begin{bf}"ADM.LASTNAME || "," ADM.FIRSTNAME "\end{bf}\\"
- IF ADM.ID ~= "" THEN text = text "(ID" ADM.ID || ")"
-
- CALL DruckZeile
-
- text = ADM.ADDRESS1"\hfill\\"
- CALL DruckZeile
- /* text = ADM.ADDRESS2"\hfill\\"
- CALL DruckZeile*/
- text = " " ADM.POSTCODE ADM.CITY || "" ADM.COUNTRY "\hfill\\"
- CALL DruckZeile
-
- 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;
-
- text = " "
- IF ADM.TELEPHONE ~= "" THEN text = text || "\phone\ " ADM.TELEPHONE /*|| ", "
- IF ADM.FAX ~= "" THEN text = text || "Fax" ADM.FAX"\hfill\\" */
- CALL DruckZeile
-
- /* text = " "
- IF ADM.BIRTHDAY ~= "" THEN text = text || "Geb." ADM.BIRTHDAY
- CALL DruckZeile
- */
- ok = WriteLn(datei,"") /* Leerzeile schreiben */
-
- ACTIVATENEXT /* Akt. naechsten Eintrag */
-
- text = "\end{samepage}"
- CALL DruckZeile
-
- text= "\vspace{1ex}"
- CALL DruckZeile
-
- END
-
- text = "\end{multicols}"
- CALL DruckZeile
- text = "\end{document}"
- CALL DruckZeile
-
- ok = CLOSE(datei)
-
-
- /* ÜBERSETZUNG MIT VIRTEX */
-
- ADDRESS COMMAND "virtex t:TelListe.tex"
-
-
- /* ANZEIGEN MIT SHOWDVI */
-
- ADDRESS COMMAND "showdvi t:TelListe.dvi"
-
-
- /* BOOKLET-ERSTELLUNG */
-
- IF ausgabeart = "BOOKLET" THEN DO
-
- IF groesse = 10 THEN DO
- ADDRESS COMMAND "dvidvi -m 4:0(-4.5cm,-1.0cm),3(15.5cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet1.dvi"
- ADDRESS COMMAND "dvidvi -m 4:1(15.5cm,-1.0cm),2(-4.5cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet2.dvi"
- END
-
- IF groesse = 11 THEN DO
- ADDRESS COMMAND "dvidvi -m 4:0(-4.25cm,-1.0cm),3(16.25cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet1.dvi"
- ADDRESS COMMAND "dvidvi -m 4:1(16.25cm,-1.0cm),2(-4.25cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet2.dvi"
- END
-
- IF groesse = 12 THEN DO
- ADDRESS COMMAND "dvidvi -m 4:0(-3.5cm,-1.0cm),3(17cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet1.dvi"
- ADDRESS COMMAND "dvidvi -m 4:1(17cm,-1.0cm),2(-3.5cm,-1.0cm) -sm -2 -sw 4 t:TelListe.dvi t:Booklet2.dvi"
- END
-
-
- booklet_druck = rtezrequest("Soll das Booklet auf dem Drucker" || NL ||,
- "oder in ein File ausgegeben werden?","_Drucker|_File")
-
- IF booklet_druck = 0 THEN DO
-
- ADDRESS COMMAND "dviprint landscape t:Booklet1.dvi OUT=t:Booklet1.out"
- ADDRESS COMMAND "dviprint landscape t:Booklet2.dvi OUT=t:Booklet2.out"
-
- bla = rtezrequest("So, die beiden Files t:Booklet1.out und" || NL ||,
- "t:Booklet2.out wurden jetzt geschrieben. Zum" || NL ||,
- "Ausdrucken einfach nur per Shell Booklet1.out nach" || NL ||,
- "PAR: kopieren, das Papier umdrehen, und dasselbe" || NL ||,
- "mit Booklet2.out machen.","Ok")
- END
-
-
- IF booklet_druck = 1 THEN DO
-
- ADDRESS COMMAND "dviprint landscape t:Booklet1.dvi"
-
- papierumdreh = rtezrequest("Nimm die bedruckten Seiten, und lege sie so in" || NL ||,
- "den Schacht zurück, daß sie richtig bedruckt" || NL ||,
- "werden. Fertig?", "_Ja|_Nein")
-
- IF papierumdreh = 0 THEN DO
-
- file = rtezrequest("Soll der zweite Teil erst einmal in das File" || NL ||,
- "t:Booklet2.out geschrieben werden?" || NL ||,
- "(Das kannst Du dann später mal ausdrucken, indem" || NL ||,
- "Du es nach PAR: kopierst.)","_Ja|_Nein")
- IF file = 1 THEN DO
- ADDRESS COMMAND "dviprint landscape t:Booklet2.dvi OUT=t:Booklet2.out"
- END
- END
-
- IF papierumdreh = 1 THEN DO
- ADDRESS COMMAND "dviprint landscape t:Booklet2.dvi"
- END
-
- END
-
- END
-
-
-
- /* Erstellung eines kleinen Booklets */
-
-
- IF ausgabeart = "SMALLBOOKLET" THEN DO
-
-
- ADDRESS COMMAND "dvidvi -m 4:0(-0.8cm,-0.5cm),2(14.25cm,-0.5cm) -sm -2 -sw 4 t:TelListe.dvi t:SM1.dvi"
- ADDRESS COMMAND "dvidvi -m 2:0(0cm,0cm),1(0cm,14.8cm) t:SM1.dvi t:SM_Booklet1.dvi"
- ADDRESS COMMAND "delete t:SM1.dvi quiet force"
-
-
- ADDRESS COMMAND "dvidvi -m 4:1(14.25cm,-0.5cm),3(-0.8cm,-0.5cm) -sm -2 -sw 4 t:TelListe.dvi t:SM2.dvi"
- ADDRESS COMMAND "dvidvi -m 2:0(0cm,0cm),1(0cm,14.8cm) t:SM2.dvi t:SM_Booklet2.dvi"
- ADDRESS COMMAND "delete t:SM2.dvi quiet force"
-
-
-
- sm_booklet_druck = rtezrequest("Soll das Booklet auf dem Drucker" || NL ||,
- "oder in ein File ausgegeben werden?","_Drucker|_File")
-
- IF sm_booklet_druck = 0 THEN DO
-
- ADDRESS COMMAND "dviprint landscape t:SM_Booklet1.dvi OUT=t:SM_Booklet1.out"
- ADDRESS COMMAND "dviprint landscape t:SM_Booklet2.dvi OUT=t:SM_Booklet2.out"
-
- bla = rtezrequest("So, die beiden Files t:SM_Booklet1.out und" || NL ||,
- "t:SM_Booklet2.out wurden jetzt geschrieben. Zum" || NL ||,
- "Ausdrucken einfach nur per Shell SM_Booklet1.out nach" || NL ||,
- "PAR: kopieren, das Papier umdrehen, und dasselbe" || NL ||,
- "mit SM_Booklet2.out machen.","Ok")
- END
-
-
- IF sm_booklet_druck = 1 THEN DO
-
- ADDRESS COMMAND "dviprint PAPERSIZE A4 t:SM_Booklet1.dvi"
-
- sm_papierumdreh = rtezrequest("Nimm die bedruckten Seiten, und lege sie so in" || NL ||,
- "den Schacht zurück, daß sie richtig bedruckt" || NL ||,
- "werden. Fertig?", "_Ja|_Nein")
-
- IF sm_papierumdreh = 0 THEN DO
-
- sm_file = rtezrequest("Soll der zweite Teil erst einmal in das File" || NL ||,
- "t:SM_Booklet2.out geschrieben werden?" || NL ||,
- "(Das kannst Du dann später mal ausdrucken, indem" || NL ||,
- "Du es nach PAR: kopierst.)","_Ja|_Nein")
- IF file = 1 THEN DO
- ADDRESS COMMAND "dviprint PAPERSIZE A4 t:SM_Booklet2.dvi OUT=t:SM_Booklet2.out"
- END
- END
-
- IF sm_papierumdreh = 1 THEN DO
- ADDRESS COMMAND "dviprint PAPERSIZE A4 t:SM_Booklet2.dvi"
- END
-
- END
-
- END
-
-
-
- /* Normales Ausdrucken mit DVIprint ohne Booklet-Erstellung */
-
- IF ausgabeart = "NOBOOKLET" THEN DO
- IF seite = "ONESIDE" THEN DO
- ADDRESS COMMAND "dviprint t:TelListe.dvi"
- END
-
- IF seite = "TWOSIDE" THEN DO
- ADDRESS COMMAND "dviprint ODD t:TelListe.dvi"
-
- papierumdreh2 = rtezrequest("Nimm die bedruckten Seiten, und lege sie so in" || NL ||,
- "den Schacht zurück, daß sie richtig bedruckt" || NL ||,
- "werden. Fertig?", "_Ja|_Nein")
- IF papierumdreh2 = 0 THEN DO
- file2 = rtezrequest("Soll der zweite Teil erst einmal in das File" || NL ||,
- "t:ListeGerade.out geschrieben werden?" || NL ||,
- "(Das kannst Du dann später mal ausdrucken, indem" || NL ||,
- "Du es nach PAR: kopierst.)","_Ja|_Nein")
- IF file2 = 1 THEN DO
- ADDRESS COMMAND "dviprint EVEN t:TelListe.dvi OUT=t:ListeGerade.out"
- END
- IF file2 = 0 THEN DO
- ADDRESS COMMAND "dviprint EVEN t:TelListe.dvi"
- END
- END
- END
- END
-
- /* Programmende */
-
- EXIT
-
- /* ----------------------------------------------------------------------
- UNTERPROGRAMM: Zeile Schreiben
- ---------------------------------------------------------------------- */
-
- DruckZeile:
-
- text = STRIP(text,"T"," ") /* Leerzeichen am Ende entfernen */
- text = STRIP(text,"T",",") /* Kommas am Ende entfernen */
-
- pp = POS("&",text)
- DO WHILE pp > 0
- text = INSERT("\",text,pp-1)
- pp = POS("&",text,pp+2)
- END;
-
- pp = POS("#",text)
- DO WHILE pp > 0
- text = INSERT("\",text,pp-1)
- pp = POS("#",text,pp+2)
- END;
-
- pp = POS("%",text)
- DO WHILE pp > 0
- text = INSERT("\",text,pp-1)
- pp = POS("%",text,pp+2)
- END;
-
- IF text ~= "" THEN /* Wenn Zeile nicht leer... */
- ok = WRITELN(datei,text) /* Zeile ausgeben */
-
- RETURN
-