summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/3.listen.lehrbef lehrerweise
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/3.listen.lehrbef lehrerweise')
-rw-r--r--app/schulis/2.2.1/src/3.listen.lehrbef lehrerweise100
1 files changed, 100 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/3.listen.lehrbef lehrerweise b/app/schulis/2.2.1/src/3.listen.lehrbef lehrerweise
new file mode 100644
index 0000000..1c3e172
--- /dev/null
+++ b/app/schulis/2.2.1/src/3.listen.lehrbef lehrerweise
@@ -0,0 +1,100 @@
+PACKET lehrbefaehigungenlehrerweiselisteDEFINES
+lehrerwlehrbeflidruckenoderzeigen:LET datenraum="datenraum",ausgkopflaenge=2,
+ueberschriftenzeilen=2,anzahlparapheninlehrbef=300,neunfelder=9,niltext="",
+blank=" ",null=0,strich="-",mnrbearbeitetwerden=352,mnrlistewirdgedruckt=58,
+mnrauswahlnichtsinnvoll=56,mnrlistewirdaufbereiet=190;INT VAR zeilenzaehler,
+druckzeilenzahl,anzahlparindateilehrbef,anzahlparindateilehrer,x,y,
+eingabestatus;BOUND ROW anzahlparapheninlehrbefROW neunfelderTEXT VAR
+datenauszweidateien;FILE VAR ausgabedatei;TEXT CONST ausgabedateiname:=
+"Liste der Lehrbefähigungen",teiltextmeldung:=
+"Lehrerparaphen mit den Anfangsbuchstaben:",spaltentext:=
+"Lehrer Soll. Pfl. Lehrbefähigung Fach/Art",tasten:="vr",spaltenstrich:=60*
+strich;TEXT VAR neueranfbuchstabe:="",anfbuchstabe:="",ueberschrift:=
+"Liste der Lehrbefähigungen aller Lehrer",paraphe:="",aufbereitetezeile:="";
+BOOL VAR ausgabedrucker:=FALSE ;LET AUSGKOPFDRUCK =ROW ausgkopflaengeTEXT ;
+AUSGKOPFDRUCK VAR ausgkopfdruck;PROC lehrerwlehrbeflidruckenoderzeigen(INT
+CONST nr):anzahlparindateilehrer:=int(records(dnrlehrer));SELECT nrOF CASE 1:
+druckenoderbildschirmausgabeCASE 2:druckennachbildschirmausgabe;return(2);
+forget(ausgabedateiname,quiet)CASE 3:rowimdatenraumloeschen;enter(2);forget(
+ausgabedateiname,quiet)ENDSELECT .END PROC lehrerwlehrbeflidruckenoderzeigen;
+PROC rowimdatenraumloeschen:forget(datenraum,quiet)END PROC
+rowimdatenraumloeschen;PROC druckennachbildschirmausgabe:
+lehrerwlehrbefdruckenEND PROC druckennachbildschirmausgabe;PROC
+druckenoderbildschirmausgabe:LET fnrausgdrucker=2,fnrausgbild=3;IF
+eingabenrichtigTHEN standardmeldung(mnrlistewirdaufbereiet,niltext);
+datenauszweidateienholenundimrowablegen;ausgabedrucker:=(standardmaskenfeld(
+fnrausgbild)=niltext);IF ausgabedruckerTHEN lehrerwlehrbefdrucken;return(1);
+ELSE ausgabedatei:=sequentialfile(output,"Liste der Lehrbefähigungen");
+lehrerwlehrbefaufbildschirmzeigenFI ;ELSE meldefehler;return(1)FI ;.
+eingabenrichtig:standardpruefe(5,fnrausgdrucker,fnrausgbild,null,niltext,
+eingabestatus);IF eingabestatus=0THEN TRUE ELSE FALSE FI .meldefehler:
+standardmeldung(mnrauswahlnichtsinnvoll,niltext)END PROC
+druckenoderbildschirmausgabe;PROC lehrerwlehrbefaufbildschirmzeigen:
+datenausrowinshowdateischreiben;dateiaufbildschirmausgeben;END PROC
+lehrerwlehrbefaufbildschirmzeigen;PROC lehrerwlehrbefdrucken:
+druckdateimitrowdatenfuellendruckenundloeschen;rowimdatenraumloeschenEND
+PROC lehrerwlehrbefdrucken;PROC
+druckdateimitrowdatenfuellendruckenundloeschen:TEXT VAR zeile;INT VAR
+zeilenanz:=1,x:=1;druckvorbereiten;variablenfuerdrucksetzen;initdruckkopf(
+ueberschrift);initausgabekopfdruck;druckkopfschreiben;
+spaltenueberschriftdrucken;setzemitseitennummern(TRUE );x:=1;zeilenzaehler:=1
+;WHILE zeilenanz<=anzahlparindateilehrbefREP zeileaufbereiten;
+ggfmeldunganfbuchstabe;neueranfbuchstabe:=anfbuchstabe;IF zeilenzaehler>
+druckzeilenzahlTHEN seitenwechsel;spaltenueberschriftdrucken;zeilenzaehler:=0
+;FI ;druckzeileschreiben(zeile);xINCR 1;zeilenanzINCR 1;zeilenzaehlerINCR 1;
+PER ;standardmeldung(mnrlistewirdgedruckt,niltext);drucknachbereiten;.
+ggfmeldunganfbuchstabe:IF anfbuchstabegeaendertTHEN meldunganfbuchstabeFI .
+anfbuchstabegeaendert:anfbuchstabe<>neueranfbuchstabe.meldunganfbuchstabe:
+LET markiert="#";standardmeldung(mnrbearbeitetwerden,teiltextmeldung+
+neueranfbuchstabe+markiert);.variablenfuerdrucksetzen:druckzeilenzahl:=
+drucklaenge(ueberschriftenzeilen)-ausgkopflaenge.zeileaufbereiten:y:=1;zeile
+:=text(datenauszweidateien(x)(y),8);FOR yFROM 8UPTO neunfelderREP zeileCAT
+text(datenauszweidateien(x)(y),6)PER ;FOR yFROM 2UPTO 7REP zeileCAT text(
+datenauszweidateien(x)(y),7)PER ;anfbuchstabe:=(datenauszweidateien(x)(1))
+SUB 1;END PROC druckdateimitrowdatenfuellendruckenundloeschen;PROC
+initausgabekopfdruck:ausgkopfdruck(1):=spaltentext;ausgkopfdruck(2):=
+spaltenstrichEND PROC initausgabekopfdruck;PROC spaltenueberschriftdrucken:
+INT VAR l;FOR lFROM 1UPTO ausgkopflaengeREP druckzeileschreiben(ausgkopfdruck
+(l))PER END PROC spaltenueberschriftdrucken;PROC
+datenausrowinshowdateischreiben:putline(ausgabedatei,blank);putline(
+ausgabedatei,spaltentext);putline(ausgabedatei,spaltenstrich);putline(
+ausgabedatei,blank);FOR xFROM 1UPTO anzahlparindateilehrbefREP
+zeileaufbereiten;aufbereitetezeileindateischreibenPER .zeileaufbereiten:y:=1;
+aufbereitetezeile:=text(datenauszweidateien(x)(y),8);FOR yFROM 8UPTO
+neunfelderREP aufbereitetezeileCAT text(datenauszweidateien(x)(y),6)PER ;FOR
+yFROM 2UPTO 7REP aufbereitetezeileCAT text(datenauszweidateien(x)(y),7)PER ;.
+aufbereitetezeileindateischreiben:putline(ausgabedatei,aufbereitetezeile);
+aufbereitetezeile:=niltextEND PROC datenausrowinshowdateischreiben;PROC
+dateiaufbildschirmausgeben:zeigedatei(ausgabedateiname,tasten);END PROC
+dateiaufbildschirmausgeben;PROC datenauszweidateienholenundimrowablegen:
+datenauszweidateien:=new(datenraum);lehrerdatenrowinitialisieren;inittupel(
+ixlbpar);x:=0;y:=1;statleseschleife(ixlbpar,"","",fnrlbparaphe,fnrlbfach,
+PROC holedatenausdateilehrbefaehigungeninsrow);anzahlparindateilehrbef:=x;
+inittupel(dnrlehrer);x:=1;y:=1;statleseschleife(dnrlehrer,"","",fnrlparaphe,
+fnrlfamname,PROC holedatenausdateilehrerinsrow);.lehrerdatenrowinitialisieren
+:FOR xFROM 1UPTO anzahlparindateilehrerREP FOR yFROM 1UPTO neunfelderREP
+datenauszweidateien(x)(y):=niltext;PER ;PER END PROC
+datenauszweidateienholenundimrowablegen;PROC
+holedatenausdateilehrbefaehigungeninsrow(BOOL VAR b):IF dbstatus<>0THEN b:=
+TRUE ELSE IF paraphe<>wert(fnrlbparaphe)THEN xINCR 1;y:=1;paraphe:=wert(
+fnrlbparaphe);datenauszweidateien(x)(y):=paraphe;FI ;yINCR 1;
+datenauszweidateien(x)(y):=text(wert(fnrlbfach),2)+"/"+wert(fnrlbart);FI ;
+END PROC holedatenausdateilehrbefaehigungeninsrow;PROC
+holedatenausdateilehrerinsrow(BOOL VAR b):IF dbstatus<>0THEN b:=TRUE ELSE IF
+wert(fnrlparaphe)=datenauszweidateien(x)(1)THEN datenauszweidateien(x)(8):=
+wert(fnrlsollstd);datenauszweidateien(x)(9):=wert(fnrlpflichtstd);xINCR 1;FI
+;FI ;END PROC holedatenausdateilehrerinsrow;PROC statleseschleife(INT CONST
+indexnummer,TEXT CONST startschluessel1,startschluessel2,INT CONST feldnr1,
+feldnr2,PROC (BOOL VAR )stataktion):vorbereitungen;leseschleife.
+vorbereitungen:LET maxleseanzahl=10;BOOL VAR vorzeitigesende:=FALSE ;#INT
+CONST maxblock:=maxfeldDIV zahlderfelder;#INT VAR anzahltupel;#INT CONST
+maxanzahl:=(maxintDIV maxblock)*maxblock#.leseschleife:putwert(feldnr1,
+startschluessel1);putwert(feldnr2,startschluessel2);search(indexnummer);IF
+dbstatus=0THEN einleseschleifeFI .einleseschleife:zaehlen;WHILE NOT schluss
+REP anzahltupel:=maxleseanzahl;multisucc(indexnummer,anzahltupel);
+stackdurchlaufPER ;.stackdurchlauf:IF anzahltupel=0THEN dbstatus(1)ELSE
+WHILE anzahltupel<>0REP lesen;zaehlen;IF vorzeitigesendeTHEN dbstatus(1);
+anzahltupel:=0FI ;PER FI .schluss:dbstatus<>0.zaehlen:stataktion(
+vorzeitigesende).lesen:multisucc;anzahltupelDECR 1;.END PROC statleseschleife
+;END PACKET lehrbefaehigungenlehrerweiseliste;
+