summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.listen.abgem
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.listen.abgem')
-rw-r--r--app/schulis/2.2.1/src/1.listen.abgem115
1 files changed, 115 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.listen.abgem b/app/schulis/2.2.1/src/1.listen.abgem
new file mode 100644
index 0000000..da5fb1b
--- /dev/null
+++ b/app/schulis/2.2.1/src/1.listen.abgem
@@ -0,0 +1,115 @@
+PACKET abgemlistenDEFINES abgemlispezielleteile:LET niltext="",blank=" ",
+mittestrich="-",null=0,ueberschriftenzeilen=1,spalte1breite=7,spalte3breite=8
+,spalte4breite=8,spalte5breite=7,anzspaltentrenner=4,ausgkopflaenge=3,
+ausgfeldlaenge=2,AUSGFELD =ROW ausgfeldlaengeTEXT ,AUSGKOPF =ROW
+ausgkopflaengeTEXT ,abgemlieingangsmaske="mu liste einfach eingang",
+abgemlianfpos=2,mnrbearbeitetwirdjgst=106,#ixsustatabgdat=260,dnrschueler=2,
+fnrsufamnames=3,fnrsurufnames=4,fnrsugebdatums=5,fnrsustatuss=6,fnrsusgrpjgst
+=7,fnrsusgrpzugtut=8,fnrsunamenszusatzs=21,fnrsuabgdats=16,fnrsuabggrund=17,
+fnrsuabschluss=18,#anfangsj="Anfang Schulhalbjahr",endesj=
+"Ende Schulhalbjahr";INT CONST spalte2bildbreite:=bildbreite-
+anzspaltentrenner-spalte1breite-spalte3breite-spalte4breite-spalte5breite;
+INT VAR spalte2druckbreite,druckzeilenzahl,aktuelleindexnr,bildanf,
+eingabestatus,breite;TEXT VAR abgemliueberschrift,bearbeitetwirdjgst,
+schuljahr,jahr1,jahr2,schuelername,schuelerrufname,schuelernamenszus,
+schuelerjgst,schuelerzug,schuelergebdat,schuelerabdat,schuelerabgrund,
+schuelerabqual,jgst,neuejgst,startwert,klasse,neueklasse,anfangsdatum:="",
+endedatum:="";TEXT VAR druckstrich;TEXT CONST bildstrich:=bildbreite*
+mittestrich;AUSGFELD VAR ausgfeld;AUSGKOPF VAR ausgkopf;BOOL VAR
+ersteraufbildschirm,klassegeaendert:=FALSE ;BOOL PROC multistop:BOOL VAR b:=(
+date(wert(fnrsuabgdats))>=date(anfangsdatum))CAND (date(wert(fnrsuabgdats))<=
+date(endedatum))CAND (wert(fnrsustatuss)="ls");bEND PROC multistop;BOOL PROC
+multistopdruck:BOOL VAR b:=multistop;setzebestandende(NOT b);bENDPROC
+multistopdruck;PROC abgemlispezielleteile(INT CONST nr):SELECT nrOF CASE 1:
+abgemlidialogvorbereitenCASE 2:abgemlieingabenrichtigCASE 3:
+abgemlilistenvorbereitenCASE 4:abgemlidruckvorbereitenCASE 5:
+abgemliseitedruckenCASE 6:abgemlibildschirmvorbereitenCASE 7:
+abgemliseitezeigenENDSELECT .END PROC abgemlispezielleteile;PROC
+abgemlidialogvorbereiten:abgemliueberschrift:=text(vergleichsknoten);
+setzeanfangswerte(abgemlieingangsmaske,abgemlianfpos)END PROC
+abgemlidialogvorbereiten;PROC abgemlieingabenrichtig:LET fnrausgdrucker=2,
+fnrausgbild=3;standardpruefe(5,fnrausgdrucker,fnrausgbild,null,niltext,
+eingabestatus);IF eingabestatus<>0THEN infeld(eingabestatus);setzeeingabetest
+(FALSE )ELSE setzeausgabedrucker(standardmaskenfeld(fnrausgbild)=niltext);
+setzeeingabetest(TRUE )FI .END PROC abgemlieingabenrichtig;PROC
+abgemlilistenvorbereiten:BOOL VAR b:=FALSE ;LET schluessel="Schuljahr";
+aktuellesschuljahrermitteln;aktuelleindexnr:=ixsustatabgdat;startwert:="ls";
+inittupel(dnrschueler);initobli(8);parsenooffields(21);setzeidentiwert("");
+putwert(fnrsustatuss,startwert);putwert(fnrsuabgdats,anfangsdatum);#
+objektlistestarten(aktuelleindexnr,"",3,TRUE ,b);#objektlistestarten(
+aktuelleindexnr,"",fnrsuabgdats,TRUE ,b);setzebestandende(NOT multistopOR b).
+aktuellesschuljahrermitteln:schuljahr:=schulkenndatum(schluessel);jahr1:=
+subtext(schuljahr,1,2);jahr2:=subtext(schuljahr,3,4);anfangsdatum:=
+schulkenndatum(anfangsj);endedatum:=schulkenndatum(endesj).END PROC
+abgemlilistenvorbereiten;PROC abgemlibildschirmvorbereiten:LET fnrausganf=2;
+standardkopfmaskeaktualisieren(abgemliueberschrift);breite:=bildbreite;
+initspalten;setzespaltenbreiten(spalte2bildbreite);initausgabekopf(bildstrich
+);bildanf:=fnrausganf;INT VAR i;FOR iFROM 1UPTO ausgkopflaengeREPEAT ausgkopf
+(i)IN bildanf;bildanfINCR 1END REPEAT ;klasse:=niltext;
+setzebildanfangsposition(bildanf).END PROC abgemlibildschirmvorbereiten;PROC
+abgemliseitezeigen:ersteraufbildschirm:=TRUE ;setzescanendewert(endedatum);
+setzescanstartwert(anfangsdatum);blaettern(PROC (INT CONST )schuelerzeigen,
+aktion,TRUE ,TRUE ,BOOL PROC multistop);setzescanendewert("�");
+setzescanstartwert("�")END PROC abgemliseitezeigen;PROC schuelerzeigen(INT
+CONST x):schuelerholen;IF ersteraufbildschirmTHEN klassegeaendert:=TRUE ;
+ersteraufbildschirm:=FALSE FI ;schueleraufbereiten;schueleraufbildschirm.END
+PROC schuelerzeigen;PROC schueleraufbildschirm:INT VAR i;FOR iFROM 1UPTO
+ausgfeldlaengeREPEAT ausgfeld(i)IN ausgabepos;erhoeheausgabeposumeinsEND
+REPEAT .END PROC schueleraufbildschirm;PROC abgemlidruckvorbereiten:LET
+uebteil1="Liste der im Schuljahr ",uebteil2=" abgemeldeten Schüler";TEXT VAR
+ueberschrift;jgst:=niltext;klasse:=niltext;druckvorbereiten;
+variablenfuerdrucksetzen;ueberschriftvorbereitendruck;initdruckkopf(zentriert
+(ueberschrift,druckbreite));breite:=druckbreite;initspalten;
+setzespaltenbreiten(spalte2druckbreite);initausgabekopf(druckstrich);
+holemeldung;inittupel(dnrschueler);putwert(fnrsustatuss,startwert);putwert(
+fnrsuabgdats,anfangsdatum);lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,
+INT VAR )scanforward,BOOL PROC multistopdruck).holemeldung:meldungstext(
+mnrbearbeitetwirdjgst,bearbeitetwirdjgst).variablenfuerdrucksetzen:
+druckstrich:=druckbreite*mittestrich;spalte2druckbreite:=druckbreite-
+anzspaltentrenner-spalte1breite-spalte3breite-spalte4breite-spalte5breite;
+druckzeilenzahl:=drucklaenge(ueberschriftenzeilen)-ausgkopflaenge.
+ueberschriftvorbereitendruck:ueberschrift:=uebteil1+aufbereitetesschuljahr+
+uebteil2.aufbereitetesschuljahr:"19"+jahr1+"/"+jahr2.END PROC
+abgemlidruckvorbereiten;PROC abgemliseitedrucken:abgemliueberschriftdrucken;
+seitedrucken(PROC (INT VAR )schuelerdrucken,druckzeilenzahl,ausgfeldlaenge,
+BOOL PROC multistopdruck);seitenwechsel.END PROC abgemliseitedrucken;PROC
+abgemliueberschriftdrucken:druckkopfschreiben;INT VAR i;FOR iFROM 1UPTO
+ausgkopflaengeREPEAT druckzeileschreiben(ausgkopf(i))END REPEAT .END PROC
+abgemliueberschriftdrucken;PROC schuelerdrucken(INT VAR zeilenzaehler):LET
+markiert="#";schuelerholen;IF zeilenzaehler=nullTHEN klassegeaendert:=TRUE
+FI ;ggflmeldungjgst;schueleraufbereiten;zeilenzaehlerINCR ausgfeldlaenge;
+schuelerindruckdatei.ggflmeldungjgst:IF jgstgeaendertTHEN zwischenmeldungFI .
+jgstgeaendert:neuejgst:=schuelerjgst;jgst<>neuejgst.zwischenmeldung:
+standardmeldung(bearbeitetwirdjgst,neuejgst+markiert);jgst:=neuejgst;END
+PROC schuelerdrucken;PROC schuelerindruckdatei:INT VAR i;FOR iFROM 1UPTO
+ausgfeldlaengeREPEAT druckzeileschreiben(ausgfeld(i))END REPEAT .END PROC
+schuelerindruckdatei;PROC setzespaltenbreiten(INT CONST spalte2breite):
+setzespaltenbreite(spalte1breite);setzespaltenbreite(spalte2breite);
+setzespaltenbreite(spalte3breite);setzespaltenbreite(spalte4breite);
+setzespaltenbreite(spalte5breite);END PROC setzespaltenbreiten;PROC
+initausgabekopf(TEXT CONST strich):LET jgst="Jgst.",klasse=" Kl.",name=
+"Familienname",rufname=" Rufname",geb="Geburts-",abg="Abgangs-",datum=
+"datum",grund="Grund",qual=" Qual.";spaltenweise(jgst);spaltenweise(name);
+spaltenweise(geb);spaltenweise(abg);spaltenweise(grund);ausgkopf(1):=zeile;
+spaltenweise(klasse);spaltenweise(rufname);spaltenweise(datum);spaltenweise(
+datum);spaltenweise(qual);ausgkopf(2):=zeile;ausgkopf(3):=strich;END PROC
+initausgabekopf;PROC schuelerholen:schuelername:=wert(fnrsufamnames);
+schuelerrufname:=wert(fnrsurufnames);schuelernamenszus:=wert(
+fnrsunamenszusatzs);schuelerjgst:=wert(fnrsusgrpjgst);schuelerzug:=wert(
+fnrsusgrpzugtut);schuelergebdat:=wert(fnrsugebdatums);schuelerabdat:=wert(
+fnrsuabgdats);schuelerabgrund:=wert(fnrsuabggrund);schuelerabqual:=wert(
+fnrsuabschluss);neueklasse:=schuelerjgst+schuelerzug;klassegeaendert:=klasse
+<>neueklasse;klasse:=neueklasse.END PROC schuelerholen;PROC
+schueleraufbereiten:LET minus="-";schreibenameabdaten;schreiberufname.
+schreibenameabdaten:spaltenweise(aufbschuelerklasse);spaltenweise(
+aufbschuelername);spaltenweise(schuelergebdat);spaltenweise(schuelerabdat);
+spaltenweise(blank+aufbschuelerabgrund+blank+aufbschuelerabqual);ausgfeld(1)
+:=zeile.schreiberufname:ausgfeld(2):=text(aufbrufname,breite).
+aufbschuelerklasse:IF klassegeaendertTHEN schuelerjgst+blank+schuelerzugELSE
+spalte1breite*blankFI .aufbschuelername:IF schuelernamenszus=niltextTHEN
+schuelernameELSE schuelernamenszus+blank+schuelernameFI .aufbschuelerabqual:
+IF schuelerabqual=niltextTHEN minusELSE schuelerabqualFI .aufbschuelerabgrund
+:IF schuelerabgrund=niltextTHEN minusELSE schuelerabgrundFI .aufbrufname:(
+spalte1breite+3)*blank+schuelerrufname.END PROC schueleraufbereiten;END
+PACKET abgemlisten;
+