app/schulis/2.2.1/src/1.listen.neuan

Raw file
Back to index

PACKET neuanlistenDEFINES neuanlispezielleteile:LET niltext="",blank=" ",
mittestrich="-",null=0,komma=",",ueberschriftenzeilen=2,nname="Name",schule=
"Schule",klasse="Klasse",spalte3breite=6,anzspaltentrenner=2,ausgkopflaenge=2
,ausgfeldlaenge=2,AUSGFELD =ROW ausgfeldlaengeTEXT ,AUSGKOPF =ROW 
ausgkopflaengeTEXT ,neuanlieingangsmaske="ms liste neuanmeld eingang",
neuanlianfpos=2,#fnrsustatuss=6,fnrsunamenszusatzs=21,fnrsuskennlschule=14,
fnrsuklasselschule=15,ixsustatschulkenn=253,ixsustatfamrufgeb=254dnrschueler=
2,dnrschulen=120,fnrschkennung=121,fnrschname=122,#mnrbearbeitetwerdenschulen
=101,mnrbearbeitetwerdenschueler=102;INT CONST spalte1bildbreite:=(bildbreite
-anzspaltentrenner-spalte3breite)DIV 2,spalte2bildbreite:=spalte1bildbreite;#
bildsatzzahl:=(bildlaenge-ausgkopflaenge)DIV ausgfeldlaenge,bildblocklaenge:=
(bildsatzzahl+1)DIV 2;#INT VAR spalte1druckbreite,spalte2druckbreite,
druckzeilenzahl,bildanf,eingabestatus,aktuelleindexnr;TEXT VAR schuljahr,
schuelername,schuelerrufname,schuelernamenszus,schuelerherkschule,
schuelerherkklasse,schuelernameaufber,jahrgang,#sortbest,#anfbuchstabe,
neueranfbuchstabe,startwert,bearbeitetwerdenschulen,bearbeitetwerdenschueler;
TEXT VAR druckstrich;TEXT CONST bildstrich:=bildbreite*mittestrich;AUSGFELD 
VAR ausgfeld;AUSGKOPF VAR ausgkopf;BOOL VAR sortalpha,jgst5,jgst11;BOOL PROC 
multistop:BOOL VAR b;IF jgst5THEN b:=wert(fnrsustatuss)="n05"ELIF jgst11THEN 
b:=wert(fnrsustatuss)="n11"ELSE b:=wert(fnrsustatuss)="nso"FI ;bENDPROC 
multistop;BOOL PROC multistopsim:BOOL VAR b:=multistop;setzebestandende(NOT b
);bENDPROC multistopsim;PROC neuanlispezielleteile(INT CONST nr):SELECT nrOF 
CASE 1:neuanlidialogvorbereitenCASE 2:neuanlieingabenrichtigCASE 3:
neuanlilistenvorbereitenCASE 4:neuanlidruckvorbereitenCASE 5:
neuanliseitedruckenCASE 6:neuanlibildschirmvorbereitenCASE 7:
neuanliseitezeigenENDSELECT .END PROC neuanlispezielleteile;PROC 
neuanlidialogvorbereiten:setzeanfangswerte(neuanlieingangsmaske,neuanlianfpos
)END PROC neuanlidialogvorbereiten;PROC neuanlieingabenrichtig:LET fnrjgst5=2
,fnrjgst11=3,fnrjgstsonst=4,fnrsortalpha=5,fnrsortschule=6,fnrausgdrucker=7,
fnrausgbild=8;standardpruefe(5,fnrjgst5,fnrjgstsonst,null,niltext,
eingabestatus);IF eingabestatus<>0THEN infeld(eingabestatus);setzeeingabetest
(FALSE )ELSE standardpruefe(5,fnrsortalpha,fnrsortschule,null,niltext,
eingabestatus);IF eingabestatus<>0THEN infeld(eingabestatus);setzeeingabetest
(FALSE )ELSE standardpruefe(5,fnrausgdrucker,fnrausgbild,null,niltext,
eingabestatus);IF eingabestatus<>0THEN infeld(eingabestatus);setzeeingabetest
(FALSE )ELSE jgst5:=standardmaskenfeld(fnrjgst5)<>niltext;jgst11:=
standardmaskenfeld(fnrjgst11)<>niltext;sortalpha:=standardmaskenfeld(
fnrsortschule)=niltext;#note("-->"+standardmaskenfeld(fnrsortschule)+"<--");
noteline;#setzeausgabedrucker(standardmaskenfeld(fnrausgbild)=niltext);
setzeeingabetest(TRUE )FI FI FI .END PROC neuanlieingabenrichtig;PROC 
neuanlilistenvorbereiten:LET fuenf="05",elf="11",sonst="sonst";BOOL VAR b:=
FALSE ;IF jgst5THEN jahrgang:=fuenf;startwert:="n05"ELSE IF jgst11THEN 
jahrgang:=elf;startwert:="n11"ELSE jahrgang:=sonst;startwert:="nso"FI ;FI ;
IF sortalphaTHEN aktuelleindexnr:=ixsustatfamrufgebELSE aktuelleindexnr:=
ixsustatschulkennFI ;#note("Nr,: "+text(aktuelleindexnr));noteline;#inittupel
(dnrschueler);initobli(8);parsenooffields(21);setzeidentiwert("");putwert(
fnrsustatuss,startwert);#objektlistestarten(aktuelleindexnr,"",fnrsustatuss,
TRUE ,b);#objektlistestarten(aktuelleindexnr,"",staticfield,TRUE ,b);
setzebestandende(b).staticfield:IF sortalphaTHEN dnrschueler+1ELSE 
fnrsuskennlschuleFI .END PROC neuanlilistenvorbereiten;PROC 
neuanlibildschirmvorbereiten:LET fnrausganf=2,aufein="",aufaus=" ",
neuanliueberschriftneu1="Liste der Neuanmeldungen zur Jgst. ",
neuanliueberschriftneu2="Liste der sonstigen Neuanmeldungen";
standardkopfmaskeaktualisieren(neueueberschrift);initspalten;
setzespaltenbreite(spalte1bildbreite);setzespaltenbreite(spalte2bildbreite);
setzespaltenbreite(spalte3breite);initausgabekopf(bildstrich);bildanf:=
fnrausganf;INT VAR i;FOR iFROM 1UPTO ausgkopflaengeREPEAT ausgkopf(i)IN 
bildanf;bildanfINCR 1END REPEAT ;setzebildanfangsposition(bildanf).
neueueberschrift:IF (jgst5OR jgst11)THEN neuanliueberschriftneu1+aufein+
jahrgang+aufausELSE neuanliueberschriftneu2FI .END PROC 
neuanlibildschirmvorbereiten;PROC neuanliseitezeigen:blaettern(PROC (INT 
CONST )schuelerzeigen,aktion,TRUE ,TRUE ,BOOL PROC multistop)END PROC 
neuanliseitezeigen;PROC schuelerzeigen(INT CONST x):schuelerholen;
schueleraufbereiten;schueleraufbildschirmEND PROC schuelerzeigen;PROC 
schueleraufbildschirm:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREPEAT ausgfeld
(i)IN ausgabepos;erhoeheausgabeposumeinsEND REPEAT .END PROC 
schueleraufbildschirm;PROC neuanlidruckvorbereiten:LET schluessel="Schuljahr"
,uebteil1="Folgende Schüler wurden zum Schuljahr ",uebteil2=" für die",
uebteil31="Jahrgangsstufe ",uebteil32="sonstigen Jahrgangsstufen ",uebteil4=
" angemeldet:";TEXT VAR ueberschrift1,ueberschrift2;anfbuchstabe:=blank;
druckvorbereiten;variablenfuerdrucksetzen;ueberschriftvorbereitendruck;
initdruckkopf(ueberschrift1,ueberschrift2);initspalten;setzespaltenbreite(
spalte1druckbreite);setzespaltenbreite(spalte2druckbreite);setzespaltenbreite
(spalte3breite);initausgabekopf(druckstrich);holemeldungen;inittupel(
dnrschueler);putwert(fnrsustatuss,startwert);lesenvorbereitendruck(PROC (INT 
CONST ,BOOL PROC ,INT VAR )scanforward,BOOL PROC multistopsim).
variablenfuerdrucksetzen:druckstrich:=druckbreite*mittestrich;
spalte1druckbreite:=(druckbreite-anzspaltentrenner-spalte3breite)DIV 2;
spalte2druckbreite:=spalte1druckbreite;druckzeilenzahl:=drucklaenge(
ueberschriftenzeilen)-ausgkopflaenge.ueberschriftvorbereitendruck:schuljahr:=
schulkenndatum(schluessel);schuljahraufbereiten;ueberschrift1:=uebteil1+
schuljahr+uebteil2;IF (jgst5OR jgst11)THEN ueberschrift2:=uebteil31+jahrgang+
uebteil4ELSE ueberschrift2:=uebteil32+uebteil4FI .schuljahraufbereiten:
schuljahr:="19"+subtext(schuljahr,1,2)+"/"+subtext(schuljahr,3,4).
holemeldungen:meldungstext(mnrbearbeitetwerdenschulen,bearbeitetwerdenschulen
);meldungstext(mnrbearbeitetwerdenschueler,bearbeitetwerdenschueler).END 
PROC neuanlidruckvorbereiten;PROC neuanliseitedrucken:
neuanliueberschriftdrucken;seitedrucken(PROC (INT VAR )schuelerdrucken,
druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistopsim);seitenwechsel.END 
PROC neuanliseitedrucken;PROC neuanliueberschriftdrucken:druckkopfschreiben;
INT VAR i;FOR iFROM 1UPTO ausgkopflaengeREPEAT druckzeileschreiben(ausgkopf(i
))END REPEAT .END PROC neuanliueberschriftdrucken;PROC schuelerdrucken(INT 
VAR zeilenzaehler):LET markiert="#";schuelerholen;ggflmeldunganfbuchstabe;
schueleraufbereiten;zeilenzaehlerINCR ausgfeldlaenge;schuelerindruckdatei.
ggflmeldunganfbuchstabe:IF anfbuchstabegeaendertTHEN zwischenmeldungFI .
anfbuchstabegeaendert:IF sortalphaTHEN neueranfbuchstabe:=schuelernameSUB 1
ELSE neueranfbuchstabe:=schuelerherkschuleSUB 1FI ;anfbuchstabe<>
neueranfbuchstabe.zwischenmeldung:IF sortalphaTHEN standardmeldung(
bearbeitetwerdenschueler,neueranfbuchstabe+markiert)ELSE standardmeldung(
bearbeitetwerdenschulen,neueranfbuchstabe+markiert)FI ;anfbuchstabe:=
neueranfbuchstabe;END PROC schuelerdrucken;PROC schuelerindruckdatei:INT VAR 
i;FOR iFROM 1UPTO ausgfeldlaengeREPEAT druckzeileschreiben(ausgfeld(i))END 
REPEAT .END PROC schuelerindruckdatei;PROC initausgabekopf(TEXT CONST strich)
:spaltenweise(nname);spaltenweise(schule);spaltenweise(klasse);ausgkopf(1):=
zeile;ausgkopf(2):=strich;END PROC initausgabekopf;PROC schuelerholen:
schuelername:=wert(3);schuelerrufname:=2*blank+wert(4);schuelernamenszus:=
wert(fnrsunamenszusatzs);sucheschule;schuelerherkklasse:=wert(
fnrsuklasselschule).sucheschule:putwert(fnrschkennung,wert(fnrsuskennlschule)
);search(dnrschulen,TRUE );IF dbstatus=okTHEN schuelerherkschule:=wert(
fnrschname)ELSE schuelerherkschule:=wert(fnrsuskennlschule)FI .END PROC 
schuelerholen;PROC schueleraufbereiten:schuelernameaufbereiten;
schreibenameschuleklasse;schreiberufname.schreibenameschuleklasse:
spaltenweise(schuelernameaufber);spaltenweise(schuelerherkschule);
spaltenweise(schuelerherkklasse);ausgfeld(1):=zeile.schreiberufname:
spaltenweise(schuelerrufname);spaltenweise(blank);spaltenweise(blank);
ausgfeld(2):=zeile.END PROC schueleraufbereiten;PROC schuelernameaufbereiten:
schuelernameaufber:=niltext;IF schuelernamenszus<>niltextTHEN 
schuelernameaufber:=schuelernamenszus+blankFI ;schuelernameaufber:=
schuelernameaufber+schuelername+komma;END PROC schuelernameaufbereiten;END 
PACKET neuanlisten;