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 --- .../2.2.1/src/0.listenweise grundfunktionen | 51 ++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 app/schulis/2.2.1/src/0.listenweise grundfunktionen (limited to 'app/schulis/2.2.1/src/0.listenweise grundfunktionen') diff --git a/app/schulis/2.2.1/src/0.listenweise grundfunktionen b/app/schulis/2.2.1/src/0.listenweise grundfunktionen new file mode 100644 index 0000000..7b7d32c --- /dev/null +++ b/app/schulis/2.2.1/src/0.listenweise grundfunktionen @@ -0,0 +1,51 @@ +PACKET listenweisegrundfunktionenDEFINES holevergleichssg,istzulaessigesg, +sgeinerjgst,initgruppenwechsel,gruppenwechsel,eingangsbehandlunglistenweise, +startebildschirmblock,bildschirmblock:LET blank=" ",niltext="";LET maxgw=10; +LET bestandtrenner="/";LET schuljahrkey="Schuljahr",schulhalbjahrkey= +"Schulhalbjahr",halbjahr1="1",halbjahr2="2";BOOL VAR nichtzuende,starten,sek2 +;INT VAR bestand;INT VAR schuelerzahl;ROW maxgwTEXT VAR gw;TEXT VAR +aktuelleschuelergruppen;TEXT VAR vergljgst,letztejgst;TEXT VAR schuljahr, +schulhalbjahr;PROC holevergleichssg(TEXT CONST jgst,BOOL CONST aktuell): +schuljahr:=schulkenndatum(schuljahrkey);schulhalbjahr:=schulkenndatum( +schulhalbjahrkey);aktuelleschuelergruppen:=niltext;vergljgst:=jgst;inittupel( +dnraktschuelergruppen);setzerichtigeschulkenndaten;IF jgst<>niltextTHEN +statleseschleife(dnraktschuelergruppen,jgst,niltext,fnrsgrpjgst, +fnrsgrpkennung,PROC pruefesg)ELSE sek2:=FALSE ;letztejgst:=niltext; +statleseschleife(dnraktschuelergruppen,jgst,niltext,fnrsgrpjgst, +fnrsgrpkennung,PROC allesg)FI ;.setzerichtigeschulkenndaten:IF NOT aktuell +THEN IF schulhalbjahr=halbjahr1THEN schulhalbjahr:=halbjahr2ELSE schuljahr:= +subtext(schuljahr,3,4);schuljahrCAT text(int(schuljahr)+1);schulhalbjahr:= +halbjahr1FI ;FI ;putwert(fnrsgrpsj,schuljahr);putwert(fnrsgrphj,schulhalbjahr +);.END PROC holevergleichssg;BOOL PROC istzulaessigesg(TEXT CONST sg):pos( +aktuelleschuelergruppen,sg)>0END PROC istzulaessigesg;TEXT PROC sgeinerjgst: +aktuelleschuelergruppenEND PROC sgeinerjgst;PROC pruefesg(BOOL VAR schluss): +TEXT CONST sg:=jgstaufber(wert(fnrsgrpjgst))+wert(fnrsgrpkennung);IF dbstatus +=0CAND subtext(sg,1,2)=vergljgstTHEN neueaktuelleschuelergruppe(sg)ELSE +schluss:=TRUE FI .END PROC pruefesg;PROC allesg(BOOL VAR schluss):IF dbstatus +<>0OR wert(fnrsgrpsj)<>schuljahrOR wert(fnrsgrphj)<>schulhalbjahrTHEN schluss +:=TRUE ELSE TEXT CONST sg:=jgstaufber(wert(fnrsgrpjgst))+wert(fnrsgrpkennung) +;neueaktuelleschuelergruppe(sg)FI END PROC allesg;PROC +neueaktuelleschuelergruppe(TEXT CONST sg):IF aktuelleschuelergruppen=niltext +THEN anhaengenELSE trennen;anhaengenFI .anhaengen:aktuelleschuelergruppenCAT +sg;.trennen:aktuelleschuelergruppenCAT bestandtrenner.END PROC +neueaktuelleschuelergruppe;PROC initgruppenwechsel:INT VAR i;FOR iFROM 1UPTO +maxgwREP gw(i):=niltextPER .END PROC initgruppenwechsel;PROC gruppenwechsel( +TEXT CONST gwneu,INT CONST gwalt,INT CONST laenge,incr,INT VAR aktuellesfeld) +:IF gruppenwechselliegtvorTHEN gruppenwechselzeigenELSE leeresfeldFI ; +weiterzaehlen.gruppenwechselliegtvor:(schuelerzahl=1)COR (gw(gwalt)<>gwneu). +gruppenwechselzeigen:standardmaskenfeld(text(gwneu,laenge),aktuellesfeld);gw( +gwalt):=gwneu.leeresfeld:standardmaskenfeld(laenge*blank,aktuellesfeld). +weiterzaehlen:aktuellesfeldINCR incr.END PROC gruppenwechsel;PROC +eingangsbehandlunglistenweise:standardvproc(maske(vergleichsknoten))END PROC +eingangsbehandlunglistenweise;PROC startebildschirmblock(INT CONST best,sz): +nichtzuende:=TRUE ;bestand:=best;starten:=TRUE ;schuelerzahl:=sz.END PROC +startebildschirmblock;PROC bildschirmblock(PROC schuelerzeigen,BOOL PROC ( +INT CONST )pruefungspeziell,INT CONST was):INT VAR lv,anzahl;IF startenTHEN +erstenzeigen;neuerblock;erhoehezaehlerELSE neuerblockFI .erstenzeigen: +schuelerzeigen;changeindex.erhoehezaehler:schuelerzahlINCR 1.neuerblock: +anzahl:=schuelerzahl;starten:=FALSE ;IF nichtzuendeTHEN multisucc(bestand, +anzahl);FOR lvFROM 1UPTO anzahlREP schuelerlesen;nichtzuende:= +pruefungspeziell(was);IF nichtzuendeTHEN schuelerzeigenELSE LEAVE neuerblock +FI PER ;nichtzuende:=anzahl=schuelerzahlFI ;.schuelerlesen:stackentry(lv). +END PROC bildschirmblock;END PACKET listenweisegrundfunktionen; + -- cgit v1.2.3