summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.listen.klassenbuch
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.listen.klassenbuch')
-rw-r--r--app/schulis/2.2.1/src/1.listen.klassenbuch237
1 files changed, 237 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.listen.klassenbuch b/app/schulis/2.2.1/src/1.listen.klassenbuch
new file mode 100644
index 0000000..e0c2386
--- /dev/null
+++ b/app/schulis/2.2.1/src/1.listen.klassenbuch
@@ -0,0 +1,237 @@
+PACKET klassenbuchlistenDEFINES klabulispezielleteile:LET nildatumdb=
+"01.01.00",niltext="",blank=" ",mittestrich="-",null=0,slspalte3breite=16,
+slanzspaltentrenner=2,ausgkopflaenge=3,ausgfeldlaenge=3,maxanzproseite=50,
+AUSGFELD =ROW ausgfeldlaengeTEXT ,AUSGKOPF =ROW ausgkopflaengeTEXT ,SPEICHER
+=ROW maxanzproseiteTEXT ,klabulieingangsmaske="ms liste klabuch eingang",
+klabulianfpos=2,#dnrschueler=2,fnrsufamnames=3,fnrsurufnames=4,fnrsugebdatums
+=5,fnrsustatuss=6,fnrsusgrpjgst=7,fnrsusgrpzugtut=8,fnrsugeschlechts=12,
+fnrsunamenszusatzs=21,fnrsustrnrs=24,fnrsuplzorts=25,dbiplz=--,fnrsutelnrs=26
+,fnrsutidiffdaten=52,dnrdiffdaten=53,fnrddreliunter=67,fnrddreliunteranmeld=
+69,fnrddreliunterabmeld=68,fnrddkunstmusik=70,fnrddfach091a=71,fnrddfach091b=
+72,fnrddfach092a=73,fnrddfach092b=74,fnrddfach101a=75,fnrddfach101b=76,
+fnrddfach102a=77,fnrddfach102b=78,fnrhjdfamnames=89,fnrhjdrufnames=90,
+fnrhjdgebdats=91,fnrhjdhj=93,fnrhjdjgst=94,fnrhjdfach=113,fnrhjdkursart=114,
+dnrfaecher=141,fnrffach=142,fnrffachbez=143,ixhjdfamrufgebjgsthj=276,
+ixsustatjgstzug=255,#mnrlistewirdgedruckt=58,mnrbearbeitetwird=100,
+mnrauswahlnichtsinnvoll=56;INT VAR slspalte1breite,slspalte2breite,
+druckzeilenzahlgrund,druckzeilenzahl,druckzeilenzahlrest,zaehler,anzzaehler,
+indexspeicher,eingabestatus,aktuelleindexnr;TEXT VAR vordruck,
+vordruckueberarbsl,vordruckueberarbsr,klabuliueberschrift,
+auswahlnichtsinnvoll,listewirdgedruckt,bearbeitetwird,startjahr,startzug,
+schuelername,schuelerrufname,schuelernamenszus,jahrgang,zug,schuelerstrasse,
+schuelerort,schuelertelefon,schuelergebdat,schuelergeschlecht,schuelerreliunt
+,schuelersprachen,schuelermusfach,schuelerwpffach,schuelerkursfachbez,
+schuelerkursartbez,zaehleraufber,lehrer,puffer1,puffer2,druckstrich;AUSGFELD
+VAR ausgfeld;AUSGKOPF VAR slausgkopf,srausgkopf;SPEICHER VAR speicher;FILE
+VAR f,g;BOOL VAR einjahrgang,alle,elementsek1,neueklasse:=FALSE ;BOOL PROC
+multistopsim:BOOL VAR b:=FALSE ;IF wert(fnrsustatuss)="ls"THEN IF startjahr<>
+""THEN b:=wert(fnrsusgrpjgst)=startjahr;IF bCAND startzug<>""THEN b:=wert(
+fnrsusgrpzugtut)=startzugFI ELSE #b:=dbstatus=ok;#b:=wert(fnrsustatuss)="ls"
+FI ;FI ;setzebestandende(NOT b);bEND PROC multistopsim;PROC
+klabulispezielleteile(INT CONST nr):SELECT nrOF CASE 1:
+klabulidialogvorbereiten;CASE 2:klabulieingabenrichtig;CASE 3:
+klabulilistenvorbereiten;CASE 4:klabulidruckvorbereiten;CASE 5:
+klabuliseitedrucken;ENDSELECT .END PROC klabulispezielleteile;PROC
+klabulidialogvorbereiten:klabuliueberschrift:=text(vergleichsknoten);
+setzeanfangswerte(klabulieingangsmaske,klabulianfpos).END PROC
+klabulidialogvorbereiten;PROC klabulieingabenrichtig:LET fnrjgst=2,fnrzug=3;
+alle:=FALSE ;einjahrgang:=FALSE ;reinitparsing;zug:=standardmaskenfeld(fnrzug
+);jahrgang:=standardmaskenfeld(fnrjgst);IF standardmaskenfeld(fnrjgst)=
+niltextTHEN IF zug=niltextTHEN alle:=TRUE ;setzeausgabedrucker(TRUE );
+setzeeingabetest(TRUE )ELSE meldefehler;infeld(fnrzug);setzeeingabetest(
+FALSE )FI ELSE standardpruefe(3,fnrjgst,5,13,niltext,eingabestatus);IF
+eingabestatus<>0THEN infeld(eingabestatus);setzeeingabetest(FALSE )ELSE
+jahrgang:=zweistellig(standardmaskenfeld(fnrjgst));einjahrgang:=(zug=niltext)
+;setzeausgabedrucker(TRUE );setzeeingabetest(TRUE )FI FI .meldefehler:
+meldungstext(mnrauswahlnichtsinnvoll,auswahlnichtsinnvoll);standardmeldung(
+auswahlnichtsinnvoll,niltext).END PROC klabulieingabenrichtig;PROC
+klabulilistenvorbereiten:BOOL VAR b;startjahr:=jahrgang;startzug:=zug;
+aktuelleindexnr:=ixsustatjgstzug;inittupel(dnrschueler);initobli(9);
+setzeidentiwert("");putwert(fnrsusgrpjgst,startjahr);putwert(fnrsusgrpzugtut,
+startzug);putwert(fnrsustatuss,"ls");#objektlistestarten(aktuelleindexnr,"",
+fnrsusgrpjgst,TRUE ,b);#objektlistestarten(aktuelleindexnr,"",fnrsustatuss,
+TRUE ,b);setzebestandende(NOT multistopsim)END PROC klabulilistenvorbereiten;
+PROC klabulidruckvorbereiten:LET vordr="vordruck klassenbuchliste",manager=
+"anschreiben server";setzemitseitennummern(FALSE );zaehler:=null;neueklasse:=
+TRUE ;druckvorbereiten;variablenfuerdrucksetzen;holemeldungen;inittupel(
+dnrschueler);putwert(fnrsusgrpjgst,startjahr);putwert(fnrsusgrpzugtut,
+startzug);putwert(fnrsustatuss,"ls");lesenvorbereitendruck(PROC (INT CONST ,
+BOOL PROC ,INT VAR )scanforward,BOOL PROC multistopsim);
+vordruckvommanagerholen;ueberschriftenvorbereiten;initspalten;
+ausgabekoepfevorbereiten;ausgfeld(3):=druckstrich.holemeldungen:meldungstext(
+mnrbearbeitetwird,bearbeitetwird).variablenfuerdrucksetzen:druckstrich:=
+druckbreite*mittestrich;slspalte2breite:=(druckbreite-slanzspaltentrenner-
+slspalte3breite)DIV 2;slspalte1breite:=druckbreite-slanzspaltentrenner-
+slspalte2breite-slspalte3breite;druckzeilenzahlgrund:=drucklaenge-
+ausgkopflaenge.vordruckvommanagerholen:vordruck:=vordr;forget(vordruck,quiet)
+;fetch(vordruck,/manager).END PROC klabulidruckvorbereiten;PROC
+ueberschriftenvorbereiten:LET swischuledatum=511,swiuebzeile=512,
+vordrueberarbsl="vordruck ueberarbeitet sl",vordrueberarbsr=
+"vordruck ueberarbeitet sr",beginnsek2=11,uebteil1sek1="Klasse: ",
+uebteil1sek2="Tutorenkurs: ",ueb1teil2sek1=" Klassenlehrer: ",ueb1teil2sek2
+=" Tutor: ",ueb2teil2="Schuljahr ";jahrgangundzugholen;elementsek1bestimmen
+;#puffer1:=wert();#setzesonderwerteschulkenndaten;#putwert(,puffer1);#
+vordruckfuellenfuerueberschrift1;vordruckfuellenfuerueberschrift2;
+verbleibendedruckzeilenzahlbestimmen.jahrgangundzugholen:jahrgang:=wert(
+fnrsusgrpjgst);zug:=wert(fnrsusgrpzugtut).elementsek1bestimmen:elementsek1:=
+FALSE ;IF int(jahrgang)<beginnsek2THEN elementsek1:=TRUE FI .
+vordruckfuellenfuerueberschrift1:setzesonderwert(swischuledatum,
+aufbereiteteschuledatum);setzesonderwert(swiuebzeile,aufbereiteteklasselehrer
+);vordruckueberarbsl:=vordrueberarbsl;forget(vordruckueberarbsl,quiet);
+briefalternative(vordruck,vordruckueberarbsl);f:=sequentialfile(input,
+vordruckueberarbsl).vordruckfuellenfuerueberschrift2:setzesonderwert(
+swischuledatum,aufbereiteteschuledatum);setzesonderwert(swiuebzeile,
+aufbereiteteklasseschuljahr);vordruckueberarbsr:=vordrueberarbsr;forget(
+vordruckueberarbsr,quiet);briefalternative(vordruck,vordruckueberarbsr);g:=
+sequentialfile(input,vordruckueberarbsr).aufbereiteteschuledatum:puffer1:=
+sonderwert(501);puffer2:=sonderwert(502);puffer2+(druckbreite-length(puffer2)
+-length(puffer1))*blank+puffer1.aufbereiteteklasselehrer:klassenlehrer(lehrer
+,jahrgang,zug);puffer2:=jahrgang+blank+zug;IF int(jahrgang)<11THEN
+uebteil1sek1+puffer2+ueb1teil2sek1+lehrerELSE uebteil1sek2+puffer2+
+ueb1teil2sek2+lehrerFI .aufbereiteteklasseschuljahr:puffer1:=ueb2teil2+
+sonderwert(505);puffer2:=jahrgang+blank+zug;IF int(jahrgang)<11THEN puffer2:=
+uebteil1sek1+puffer2ELSE puffer2:=uebteil1sek2+puffer2FI ;puffer2+(
+druckbreite-length(puffer2)-length(puffer1))*blank+puffer1.
+verbleibendedruckzeilenzahlbestimmen:druckzeilenzahl:=druckzeilenzahlgrund-
+max(lines(f),lines(g));druckzeilenzahl:=min((maxanzproseiteDIV (
+ausgfeldlaenge-1))*ausgfeldlaenge,druckzeilenzahl).END PROC
+ueberschriftenvorbereiten;PROC klassenlehrer(TEXT VAR lehrer,TEXT CONST
+jahrgang,TEXT CONST zug):putwert(fnrsgrpsj,schulkenndatum("Schuljahr"));
+putwert(fnrsgrphj,schulkenndatum("Schulhalbjahr"));putwert(fnrsgrpjgst,
+jahrgang);putwert(fnrsgrpkennung,zug);search(dnraktschuelergruppen,TRUE );IF
+dbstatus=okTHEN putwert(fnrlparaphe,wert(fnrsgrplehrer));search(dnrlehrer,
+TRUE );IF dbstatus=okTHEN lehrer:=wert(fnrlfamname)ELSE lehrer:=""FI ;ELSE
+lehrer:=""FI END PROC klassenlehrer;PROC ausgabekoepfevorbereiten:LET name=
+" Familienname",strasse="Straße Hausnummer",telefon="Telefonnummer",
+nrrufname="Nr. Rufname Namenszusatz",ort="Plz Ort";ausgabekopfslvorbelegen;
+ausgabekopfsrvorbelegen.ausgabekopfslvorbelegen:hilfsfeldervorbelegen;
+spaltenweise(name);spaltenweise(strasse);spaltenweise(telefon);slausgkopf(1)
+:=zeile;spaltenweise(nrrufname);spaltenweise(ort);spaltenweise(blank);
+slausgkopf(2):=zeile;slausgkopf(3):=druckstrich.hilfsfeldervorbelegen:
+setzespaltenbreite(slspalte1breite);setzespaltenbreite(slspalte2breite);
+setzespaltenbreite(slspalte3breite).END PROC ausgabekoepfevorbereiten;PROC
+ausgabekopfsrvorbelegen:LET srkopft1=" Geburts- J/M ",srkopft2=
+"Nr. datum ",srkopf1t1="Unterr. Sprachen musisches Wahlpflicht-"
+,srkopf1t2="Religion Fach fächer",srkopf2t1="Fächer",
+srkopf2t2="Kurskennungen";IF elementsek1THEN srausgkopf(1):=srkopft1+
+srkopf1t1;srausgkopf(2):=srkopft2+srkopf1t2ELSE srausgkopf(1):=srkopft1+
+srkopf2t1;srausgkopf(2):=srkopft2+srkopf2t2FI ;srausgkopf(3):=druckstrich.
+END PROC ausgabekopfsrvorbelegen;PROC klabuliseitedrucken:
+speicherrechteseiteloeschen;klabulislueberschriftdrucken;anzzaehler:=null;
+seitedrucken(PROC (INT VAR )schuelerdatendrucken,druckzeilenzahl,
+ausgfeldlaenge,PROC bestandendesimulierenbeiklassenwechsel,BOOL PROC
+multistopsim);IF neueklasseTHEN simuliertesendezuruecknehmen;
+neuelistevorbereitenELSE IF NOT bestandendeTHEN rechteseitedrucken;
+seitenwechselFI FI .speicherrechteseiteloeschen:FOR indexspeicherFROM 1UPTO
+maxanzproseiteREP speicher(indexspeicher):=niltextPER ;indexspeicher:=null.
+simuliertesendezuruecknehmen:setzebestandende(FALSE ).neuelistevorbereiten:
+leereschuelereintragen;rechteseitedrucken;meldelistewirdgedruckt;
+drucknachbereiten;druckvorbereiten;zaehler:=null;ueberschriftenvorbereiten.
+meldelistewirdgedruckt:meldungstext(mnrlistewirdgedruckt,listewirdgedruckt);
+standardmeldung(listewirdgedruckt,niltext).END PROC klabuliseitedrucken;PROC
+klabulislueberschriftdrucken:INT VAR i;input(f);WHILE NOT eof(f)REP getline(f
+,ausgfeld(1));druckzeileschreiben(ausgfeld(1));PER ;druckzeileschreiben(
+druckstrich);FOR iFROM 1UPTO ausgkopflaengeREPEAT druckzeileschreiben(
+slausgkopf(i))END REPEAT ;druckzeilenzahlrest:=druckzeilenzahl.END PROC
+klabulislueberschriftdrucken;PROC bestandendesimulierenbeiklassenwechsel:IF
+bestandendeTHEN leereschuelereintragen;rechteseitedrucken;neueklasse:=FALSE
+ELSE nochklassezubearbeiten;IF neueklasseTHEN setzebestandende(TRUE )FI ;FI .
+nochklassezubearbeiten:IF alleTHEN neueklasse:=int(jahrgang)<>int(wert(
+fnrsusgrpjgst));IF neueklasseTHEN ausgabekopfsrvorbelegenFI ;neueklasse:=
+neueklasseOR (zug<>wert(fnrsusgrpzugtut));ELSE neueklasse:=zug<>wert(
+fnrsusgrpzugtut)FI .END PROC bestandendesimulierenbeiklassenwechsel;PROC
+schuelerdatendrucken(INT VAR zeilenzaehler):LET markiert="#";
+schuelerdatenholen;ggflmeldungklasse;zaehlerINCR 1;anzzaehlerINCR 1;
+schuelerdatenaufbereiten;zeilenzaehlerINCR ausgfeldlaenge;
+schuelerdatenindruckdatei.ggflmeldungklasse:IF zaehler=nullTHEN
+standardmeldung(bearbeitetwird,jahrgang+blank+zug+markiert)FI .END PROC
+schuelerdatendrucken;PROC schuelerdatenholen:LET weiblich="w",maennlich="m",
+junge="J",maedchen="M",anzsprachen=4,prosprache=3;INT VAR i,j;schuelername:=
+wert(fnrsufamnames);schuelerrufname:=2*blank+wert(fnrsurufnames);
+schuelernamenszus:=wert(fnrsunamenszusatzs);jahrgang:=wert(fnrsusgrpjgst);zug
+:=wert(fnrsusgrpzugtut);schuelerstrasse:=wert(fnrsustrnrs);schuelerort:=wert(
+fnrsuplzorts);schuelertelefon:=wert(fnrsutelnrs);schuelergebdat:=wert(
+fnrsugebdatums);IF wert(fnrsugeschlechts)=weiblichTHEN schuelergeschlecht:=
+maedchenELIF wert(fnrsugeschlechts)=maennlichTHEN schuelergeschlecht:=junge
+ELSE schuelergeschlecht:=blankFI ;IF elementsek1THEN
+diffdatenholenundaufbereitenELSE schuelerkursfachbez:=niltext;
+schuelerkursartbez:=niltext;kursdatenholenundaufbereitenFI .
+diffdatenholenundaufbereiten:INT VAR difstatus:=0;inittupel(dnrdiffdaten);IF
+wert(fnrsutiddiffdaten)<>""THEN disablestop;readtid(dnrdiffdaten,wert(
+fnrsutiddiffdaten));IF iserrorTHEN clearerror;difstatus:=1FI ;enablestopFI ;
+IF difstatus=0THEN schuelersprachen:=niltext;sprachenaufbereiten;
+schuelerreliunt:=wert(fnrddreliunter);schuelermusfach:=wert(fnrddkunstmusik);
+schuelerwpffach:=niltext;IF jahrgang="09"THEN wpf9aufbereitenELIF jahrgang=
+"10"THEN wpf10aufbereitenFI FI .sprachenaufbereiten:FOR iFROM 0UPTO
+anzsprachen-1REP j:=(3*i)+55;puffer1:=wert(j);schuelersprachen:=
+schuelersprachen+puffer1+(prosprache-length(puffer1))*blankPER .
+wpf9aufbereiten:puffer1:=wert(fnrddfach091a);schuelerwpffach:=puffer1+(5-
+length(puffer1))*blank;puffer1:=wert(fnrddfach091b);schuelerwpffach:=
+schuelerwpffach+puffer1+(5-length(puffer1))*blank;puffer1:=wert(fnrddfach092a
+);schuelerwpffach:=schuelerwpffach+puffer1+(5-length(puffer1))*blank;puffer1
+:=wert(fnrddfach092b);schuelerwpffach:=schuelerwpffach+puffer1+(5-length(
+puffer1))*blank.wpf10aufbereiten:puffer1:=wert(fnrddfach101a);schuelerwpffach
+:=puffer1+(5-length(puffer1))*blank;puffer1:=wert(fnrddfach101b);
+schuelerwpffach:=schuelerwpffach+puffer1+(5-length(puffer1))*blank;puffer1:=
+wert(fnrddfach102a);schuelerwpffach:=schuelerwpffach+puffer1+(5-length(
+puffer1))*blank;puffer1:=wert(fnrddfach102b);schuelerwpffach:=schuelerwpffach
++puffer1+(5-length(puffer1))*blank.kursdatenholenundaufbereiten:putwert(
+fnrhjdfamnames,schuelername);putwert(fnrhjdrufnames,compress(schuelerrufname)
+);putwert(fnrhjdgebdats,schuelergebdat);putwert(fnrhjdjgst,jahrgang);putwert(
+fnrhjdhj,schulkenndatum("Schulhalbjahr"));search(ixhjdfamrufgebjgsthj,TRUE );
+pause(5);IF dbstatus=okTHEN kursartzuweisenFI .#dr31.03.88kursartzuweisen:
+TEXT VAR suchbegriff:="";FOR iFROM 1UPTO (length(wert(fnrhjdfach))DIV 2)REP
+puffer1:=wert(fnrhjdkursart)SUB i;schuelerkursartbez:=schuelerkursartbez+
+puffer1+(2-length(puffer1))*blank;suchbegriff:=subtext(wert(fnrhjdfach),(2*i)
+-1,2*i);suchbegriff:=compress(suchbegriff);putwert(fnrffach,suchbegriff);
+search(dnrfaecher,TRUE );IF dbstatus=okTHEN puffer1:=wert(fnrffachbez);
+schuelerkursfachbez:=schuelerkursfachbez+puffer1+(3-length(puffer1))*blank;
+FI ;PER .#kursartzuweisen:TEXT VAR suchbegriff:="";FOR iFROM 1UPTO (length(
+wert(fnrhjdfach))DIV 2)REP suchbegriff:=subtext(wert(fnrhjdfach),(2*i)-1,2*i)
+;suchbegriff:=compress(suchbegriff);putwert(fnrffach,suchbegriff);search(
+dnrfaecher,TRUE );IF dbstatus=okTHEN puffer1:=wert(fnrffach);
+schuelerkursfachbez:=schuelerkursfachbez+text(puffer1,3);puffer1:=wert(
+fnrhjdkursart)SUB i;schuelerkursartbez:=schuelerkursartbez+text(puffer1,3);
+ELSE schuelerkursfachbez:=schuelerkursfachbez+(3*blank);schuelerkursartbez:=
+schuelerkursartbez+(3*blank);FI ;PER .END PROC schuelerdatenholen;PROC
+schuelerdatenaufbereiten:zaehleraufbereiten;schreibenrnamestrassetelnr;
+schreiberufnameort;datenfuerrechteseitespeichern.schreibenrnamestrassetelnr:
+spaltenweise(zaehleraufber+2*blank+schuelername);spaltenweise(schuelerstrasse
+);spaltenweise(schuelertelefon);ausgfeld(1):=zeile.schreiberufnameort:
+spaltenweise(4*blank+schuelerrufname+blank+schuelernamenszus);spaltenweise(
+schuelerort);spaltenweise(blank);ausgfeld(2):=zeile.
+datenfuerrechteseitespeichern:indexspeicherINCR 1;speicher(indexspeicher):=
+zaehleraufber+2*blank+aufbgebdat+3*blank+schuelergeschlecht;IF elementsek1
+THEN speicher(indexspeicher):=speicher(indexspeicher)+6*blank+aufbreliunt+5*
+blank+schuelersprachen+4*blank+aufbmusfach+6*blank+schuelerwpffach;
+indexspeicherINCR 1ELSE speicher(indexspeicher):=speicher(indexspeicher)+3*
+blank+schuelerkursfachbez;indexspeicherINCR 1;speicher(indexspeicher):=19*
+blank+schuelerkursartbezFI .aufbgebdat:IF schuelergebdat=niltextTHEN 8*blank
+ELSE schuelergebdatFI .aufbreliunt:IF schuelerreliunt=niltextOR (reliabmeld
+AND NOT relianmeld)THEN 2*blankELSE schuelerreliuntFI .reliabmeld:wert(
+fnrddabmeldedatreli)<>nildatumdb.relianmeld:wert(fnrddanmeldedatreli)<>
+nildatumdb.aufbmusfach:IF schuelermusfach=niltextTHEN 2*blankELSE
+schuelermusfachFI .END PROC schuelerdatenaufbereiten;PROC
+schuelerdatenindruckdatei:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP
+druckzeileschreiben(ausgfeld(i))PER ;druckzeilenzahlrestDECR ausgfeldlaenge.
+END PROC schuelerdatenindruckdatei;PROC leereschuelereintragen:INT VAR
+leereschuelermoeglich,i;indexspeicherINCR 1;moeglicheschuelereintragen.
+moeglicheschuelereintragen:leereschuelermoeglich:=druckzeilenzahlrestDIV
+ausgfeldlaenge;FOR iFROM 1UPTO leereschuelermoeglichREP zaehlerINCR 1;
+zaehleraufbereiten;ausgfeld(1):=text(zaehleraufber,druckbreite);ausgfeld(2):=
+text(blank,druckbreite);schuelerdatenindruckdatei;
+leerenschuelerfuerrechteseitespeichernPER .
+leerenschuelerfuerrechteseitespeichern:anzzaehlerINCR 1;speicher(
+indexspeicher):=text(zaehleraufber,druckbreite);indexspeicherINCR 2.END PROC
+leereschuelereintragen;PROC rechteseitedrucken:INT VAR i,j;seitenwechsel;
+klabulisrueberschriftdrucken;FOR iFROM 1UPTO anzzaehlerREP j:=2*i;ausgfeld(1)
+:=speicher(j-1);ausgfeld(2):=speicher(j);schuelerdatenindruckdateiPER .END
+PROC rechteseitedrucken;PROC klabulisrueberschriftdrucken:INT VAR i;input(g);
+WHILE NOT eof(g)REP getline(g,ausgfeld(1));druckzeileschreiben(ausgfeld(1));
+PER ;druckzeileschreiben(druckstrich);FOR iFROM 1UPTO ausgkopflaengeREPEAT
+druckzeileschreiben(srausgkopf(i))END REPEAT .END PROC
+klabulisrueberschriftdrucken;PROC zaehleraufbereiten:LET zaehlerzweistellig=
+10;IF zaehler<zaehlerzweistelligTHEN zaehleraufber:=blankELSE zaehleraufber:=
+niltextFI ;zaehleraufber:=zaehleraufber+text(zaehler).END PROC
+zaehleraufbereiten;END PACKET klassenbuchlisten;
+