From 04e68443040c7abad84d66477e98f93bed701760 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 4 Feb 2019 13:09:03 +0100 Subject: Initial import --- app/schulis/2.2.1/src/3.listen.lehrbef lehrerweise | 100 +++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 app/schulis/2.2.1/src/3.listen.lehrbef lehrerweise (limited to 'app/schulis/2.2.1/src/3.listen.lehrbef lehrerweise') 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; + -- cgit v1.2.3