summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/0.listenweise grundfunktionen
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/0.listenweise grundfunktionen')
-rw-r--r--app/schulis/2.2.1/src/0.listenweise grundfunktionen51
1 files changed, 51 insertions, 0 deletions
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;
+