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/1.listen.abgem | 115 +++++++++++++++++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 app/schulis/2.2.1/src/1.listen.abgem (limited to 'app/schulis/2.2.1/src/1.listen.abgem') 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; + -- cgit v1.2.3