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

Raw file
Back to index

PACKET gesamtlisteDEFINES geslispezielleteile:#LET dnrschueler=2,
ixsustatfamrufgeb=254,stattnachfolgendemI ndexixsustat=252,fnrsufamnames=3,
fnrsurufnames=4,fnrsustatuss=6,fnrsunamenszusatzs=21,fnrsugebdatums=5,
fnrsuabgdats=16,fnrsusgrpjgst=7,fnrsusgrpzugtut=8;#LET niltext="",nildatum=
"01.01.00",blank=" ",mittestrich="-",null=0,komma=",",kleina="a",stern="*",
ueberschriftenzeilen=1,altervolljaehrig=18,spalte2breite=10,spalte3breite=9,
anzspaltentrenner=2,spaltentrenner=":",ausgkopflaengebild=2,
ausgkopflaengedruck=6,ausgfeldlaenge=1,AUSGKOPFBILD =ROW ausgkopflaengebild
TEXT ,AUSGKOPFDRUCK =ROW ausgkopflaengedruckTEXT ,AUSGFELD =ROW 
ausgfeldlaengeTEXT ,geslieingangsmaske="mu liste einfach eingang",geslianfpos
=2,nname="Name, Rufname",gebdat="  Geb.Dat.",klasse="Jgst./Kl.";INT CONST 
spalte1bildbreite:=bildbreite-anzspaltentrenner-spalte2breite-spalte3breite;
INT VAR spalte1druckbreite,druckzeilenzahl,bildanf,vergldatum,eingabestatus;
TEXT VAR gesliueberschrift,schuelername,schuelerrufname,schuelernamenszus,
schuelergebdat,schuelerabdat,schuelernameaufber,gebdataufber,klasseaufber,
jahrgang,zug,anfbuchstabe,neueranfbuchstabe;TEXT VAR druckstrich;TEXT CONST 
bildstrich:=bildbreite*mittestrich;AUSGFELD VAR ausgfeld;AUSGKOPFDRUCK VAR 
ausgkopfdruck;AUSGKOPFBILD VAR ausgkopfbild;PROC geslispezielleteile(INT 
CONST nr):SELECT nrOF CASE 1:geslidialogvorbereitenCASE 2:
geslieingabenrichtigCASE 3:geslilistenvorbereitenCASE 4:geslidruckvorbereiten
CASE 5:gesliseitedruckenCASE 6:geslibildschirmvorbereitenCASE 7:
gesliseitezeigenENDSELECT .END PROC geslispezielleteile;PROC 
geslidialogvorbereiten:gesliueberschrift:=text(vergleichsknoten);
setzeanfangswerte(geslieingangsmaske,geslianfpos).END PROC 
geslidialogvorbereiten;PROC geslieingabenrichtig: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 geslieingabenrichtig;PROC 
geslilistenvorbereiten:BOOL VAR b;setzespaltentrenner(spaltentrenner);
vergldatum:=vergleichsdatum(altervolljaehrig);inittupel(dnrschueler);initobli
(17);parsenooffields(21);setzeidentiwert("");putwert(fnrsustatuss,"ls");
objektlistestarten(ixsustatfamrufgeb,"",fnrsufamnames,TRUE ,b);
setzebestandende(NOT multistopCOR b)END PROC geslilistenvorbereiten;BOOL 
PROC multistop:wert(fnrsustatuss)="ls"ENDPROC multistop;BOOL PROC 
multistopdruck:BOOL VAR b:=multistop;setzebestandende(NOT b);bENDPROC 
multistopdruck;PROC geslibildschirmvorbereiten:LET fnrausganf=2;
standardkopfmaskeaktualisieren(gesliueberschrift);initspalten;
setzespaltenbreite(spalte1bildbreite);setzespaltenbreite(spalte2breite);
setzespaltenbreite(spalte3breite);initausgabekopfbild;bildanf:=fnrausganf;
INT VAR i;FOR iFROM 1UPTO ausgkopflaengebildREPEAT ausgkopfbild(i)IN bildanf;
bildanfINCR 1END REPEAT ;setzebildanfangsposition(bildanf).END PROC 
geslibildschirmvorbereiten;PROC initausgabekopfbild:spaltenweise(nname);
spaltenweise(gebdat);spaltenweise(klasse);ausgkopfbild(1):=zeile;ausgkopfbild
(2):=bildstrich;END PROC initausgabekopfbild;PROC gesliseitezeigen:blaettern(
PROC (INT CONST )schuelerzeigen,aktion,TRUE ,TRUE ,BOOL PROC multistop)END 
PROC gesliseitezeigen;BOOL PROC dummystop:#dbstatus<>ok#TRUE ENDPROC 
dummystop;PROC schuelerzeigen(INT CONST x):schuelerholen;schueleraufbereiten;
schueleraufbildschirm;END PROC schuelerzeigen;PROC schueleraufbildschirm:INT 
VAR i;FOR iFROM 1UPTO ausgfeldlaengeREPEAT ausgfeld(i)IN ausgabepos;
erhoeheausgabeposumeinsEND REPEAT .END PROC schueleraufbildschirm;PROC 
geslidruckvorbereiten:anfbuchstabe:=niltext;druckvorbereiten;
variablenfuerdrucksetzen;inittupel(dnrschueler);putwert(fnrsustatuss,"ls");
lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT VAR )scanforward,BOOL 
PROC multistopdruck);initdruckkopf(zentriert(gesliueberschrift,druckbreite));
initspalten;setzespaltenbreite(spalte1druckbreite);setzespaltenbreite(
spalte2breite);setzespaltenbreite(spalte3breite);initausgabekopfdruck.
variablenfuerdrucksetzen:druckstrich:=druckbreite*mittestrich;
spalte1druckbreite:=druckbreite-anzspaltentrenner-spalte2breite-spalte3breite
;druckzeilenzahl:=drucklaenge(ueberschriftenzeilen)-ausgkopflaengedruck.END 
PROC geslidruckvorbereiten;PROC initausgabekopfdruck:LET kommentar1=
"Die abgemeldeten Schüler sind mit einem a vor Jgst./",kommentar2=
"Kl. markiert,",kommentar3="die volljährigen Schüler mit einem * vor dem ",
kommentar4="Geburtsdatum.";ausgkopfdruck(1):=text(kommentar1+kommentar2,
druckbreite);ausgkopfdruck(2):=text(kommentar3+kommentar4,druckbreite);
ausgkopfdruck(3):=text(niltext,druckbreite);ausgkopfdruck(4):=text(niltext,
druckbreite);spaltenweise(nname);spaltenweise(gebdat);spaltenweise(klasse);
ausgkopfdruck(5):=zeile;ausgkopfdruck(6):=druckstrich;END PROC 
initausgabekopfdruck;PROC gesliseitedrucken:gesliueberschriftdrucken;
seitedrucken(PROC (INT VAR )schuelerdrucken,druckzeilenzahl,ausgfeldlaenge,
BOOL PROC multistopdruck);seitenwechsel.END PROC gesliseitedrucken;PROC 
gesliueberschriftdrucken:druckkopfschreiben;INT VAR i;FOR iFROM 1UPTO 
ausgkopflaengedruckREPEAT druckzeileschreiben(ausgkopfdruck[i])END REPEAT .
END PROC gesliueberschriftdrucken;PROC schuelerdrucken(INT VAR zeilenzaehler)
:LET bearbeitetwerden=102,markiert="#";schuelerholen;ggflmeldunganfbuchstabe;
schueleraufbereiten;zeilenzaehlerINCR ausgfeldlaenge;schuelerindruckdatei.
ggflmeldunganfbuchstabe:IF anfbuchstabegeaendertTHEN meldunganfbuchstabeFI .
anfbuchstabegeaendert:neueranfbuchstabe:=schuelernameSUB 1;anfbuchstabe<>
neueranfbuchstabe.meldunganfbuchstabe:standardmeldung(bearbeitetwerden,
neueranfbuchstabe+markiert);anfbuchstabe:=neueranfbuchstabe.END PROC 
schuelerdrucken;PROC schuelerindruckdatei:druckzeileschreiben(ausgfeld(1)).
END PROC schuelerindruckdatei;#PROC schuelerbestanderstellen(TEXT VAR aktbest
,DBMASKE VAR nameklassegebdat):setzemaske(nameklassegebdat,
"t c12 familienname/"+"t c12 rufname/"+"t c12 namenszusaetze(1)/"+
"i c12 geburtsdatum/"+"i c12 abgangsdatum/"+"t c12 aktuelle schuelergruppe");
aktbest:=bestand.END PROC schuelerbestanderstellen;#PROC schueleraufbereiten:
schuelervorbereiten;schreibenamegebdatklasse.schreibenamegebdatklasse:
ausgfeld(1):=zeile.END PROC schueleraufbereiten;PROC schuelervorbereiten:
schuelernamevorbereiten;gebdatvorbereiten;klassevorbereiten;zeilefuellen.
schuelernamevorbereiten:schuelernameaufber:=niltext;IF schuelernamenszus<>
niltextTHEN schuelernameaufber:=schuelernamenszus+blankFI ;schuelernameaufber
:=schuelernameaufber+schuelername+komma+blank+schuelerrufname.
gebdatvorbereiten:IF (schuelergebdat<>niltext)THEN IF volljaehrig(datum(
schuelergebdat))THEN gebdataufber:=sternELSE gebdataufber:=blankFI ;
gebdataufber:=gebdataufber+blank+schuelergebdatELSE gebdataufber:=niltextFI .
klassevorbereiten:IF (schuelerabdat<>nildatum)THEN klasseaufber:=kleinaELSE 
klasseaufber:=blankFI ;klasseaufber:=klasseaufber+blank+jahrgang+blank+zug.
zeilefuellen:spaltenweise(schuelernameaufber);spaltenweise(gebdataufber);
spaltenweise(klasseaufber).END PROC schuelervorbereiten;BOOL PROC volljaehrig
(INT CONST geburtstag):geburtstag<=vergldatumEND PROC volljaehrig;PROC 
schuelerholen:schuelername:=wert(fnrsufamnames);schuelerrufname:=wert(
fnrsurufnames);schuelernamenszus:=wert(fnrsunamenszusatzs);schuelergebdat:=
wert(fnrsugebdatums);schuelerabdat:=wert(fnrsuabgdats);jahrgang:=wert(
fnrsusgrpjgst);zug:=wert(fnrsusgrpzugtut);END PROC schuelerholen;END PACKET 
gesamtliste;