summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.listen.adressen
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.listen.adressen')
-rw-r--r--app/schulis/2.2.1/src/1.listen.adressen186
1 files changed, 186 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.listen.adressen b/app/schulis/2.2.1/src/1.listen.adressen
new file mode 100644
index 0000000..0a45d7b
--- /dev/null
+++ b/app/schulis/2.2.1/src/1.listen.adressen
@@ -0,0 +1,186 @@
+PACKET adressenlistenDEFINES adrlispezielleteile:LET niltext="",blank=" ",
+mittestrich="-",null=0,komma=",",altervolljaehrig=18,uebteil21="Jgst. ",
+uebteil22="Klasse ",uebteil23="Tutorenkurs ",uebteil24="alphabetisch",
+ueberschriftenzeilen=2,#bestand1="c12 schueler",bestand2=
+"c11 akt schuelergruppen",praefix1="c12 jgst",praefix2="c12 sg",#
+ausgfeldlaenge=9,AUSGFELD =ROW ausgfeldlaengeTEXT ,adrlieingangsmaske=
+"ms liste adressen eingang",adrlianfpos=2,#dnrschueler=2,fnrsufamnames=3,
+fnrsurufnames=4,fnrsustatuss=6,fnrsunamenszusatzs=21,fnrsugebnames=22,
+fnrsugebdatums=5,fnrsusgrpjgst=7,fnrsusgrpzugtut=8,fnrsuwohntbei=23,
+fnrsustrnrs=24,fnrsuplzorts=25,fnrsutelnrs=26,fnrsufamnamee=28,fnrsuvornamee=
+29,fnrsunamenszusatzs=30,fnrsustrnre=31,fnrsuplzorte=32,fnrsutelnre=33,
+ixsustatjgstzug=255,ixsustatjgst=261,ixstatfamrufgeb=254,stattnachfolgendemI
+ndexixsustat=252,#mnrbearbeitetwerden=102,mnrbearbeitetwird=100,
+mnrauswahlnichtsinnvoll=56,mnrlistewirdgedruckt=58;INT VAR aktuelleindexnr,
+druckzeilenzahl,bildanf,vergldatum,ausgfeldzeile,eingabestatus,zaehler;TEXT
+VAR adrliueberschrift,ueberschrift1,ueberschrift2,anfbuchstabe,
+neueranfbuchstabe,startjahr,startzug,bearbeitetwerden,bearbeitetwird,
+schuelername,schuelervorname,schuelernamenszusatz,schuelergebname,gebdat,
+jahrgangsstufe,zug,adressename,adressestrasse,adresseort,adressetelnr,
+erzbername,erzbervorname,erzbernamenszusatz,erzberstrasse,erzberort,
+erzbertelnr;AUSGFELD VAR ausgfeld;ausgfeld(ausgfeldlaenge):=niltext;TEXT VAR
+druckstrich;BOOL VAR einjahrgang,alle,sortalpha,neueklasse;BOOL PROC
+multistop:BOOL VAR b:=FALSE ;IF wert(fnrsustatuss)="ls"THEN IF startjahr<>
+niltextTHEN IF startzug=niltextTHEN b:=(wert(fnrsusgrpjgst)=startjahr)ELSE b
+:=(wert(fnrsusgrpzugtut)=startzugAND wert(fnrsusgrpjgst)=startjahr)FI ELSE b
+:=dbstatus=okFI ;FI ;bEND PROC multistop;BOOL PROC multistopsim:BOOL VAR b:=
+multistop;setzebestandende(NOT b);bENDPROC multistopsim;PROC
+adrlispezielleteile(INT CONST nr):SELECT nrOF CASE 1:adrlidialogvorbereiten
+CASE 2:adrlieingabenrichtigCASE 3:adrlilistenvorbereitenCASE 4:
+adrlidruckvorbereitenCASE 5:adrliseitedruckenCASE 6:
+adrlibildschirmvorbereitenCASE 7:adrliseitezeigenENDSELECT .END PROC
+adrlispezielleteile;PROC adrlidialogvorbereiten:adrliueberschrift:=text(
+vergleichsknoten);setzeanfangswerte(adrlieingangsmaske,adrlianfpos).END PROC
+adrlidialogvorbereiten;PROC adrlieingabenrichtig:LET fnrjgst=2,fnrzug=3,
+fnralphasort=4,fnrklassensort=5,fnrausgdrucker=6,fnrausgbild=7;alle:=FALSE ;
+einjahrgang:=FALSE ;sortalpha:=FALSE ;wohinausgabepruefen;IF
+falschausgefuelltTHEN infeld(eingabestatus);setzeeingabetest(FALSE )ELSE
+jahrgangsstufe:=standardmaskenfeld(fnrjgst);zug:=standardmaskenfeld(fnrzug);
+wasausgabepruefenFI .wohinausgabepruefen:standardpruefe(5,fnrausgdrucker,
+fnrausgbild,null,niltext,eingabestatus).wasausgabepruefen:IF jahrgangsstufe=
+niltextTHEN IF zug=niltextTHEN wieausgabepruefen;IF falschausgefuelltTHEN
+infeld(eingabestatus);setzeeingabetest(FALSE )ELSE alle:=TRUE ;
+wertesetzenfuerweiterebearbeitungFI ELSE meldefehler;infeld(fnrzug);
+setzeeingabetest(FALSE )FI ELSE standardpruefe(3,fnrjgst,5,13,niltext,
+eingabestatus);IF falschausgefuelltTHEN infeld(eingabestatus);
+setzeeingabetest(FALSE )ELSE jahrgangsstufe:=zweistellig(jahrgangsstufe);
+einjahrgang:=(zug=niltext);IF einjahrgangTHEN wieausgabepruefen;IF
+falschausgefuelltTHEN infeld(eingabestatus);setzeeingabetest(FALSE )ELSE
+wertesetzenfuerweiterebearbeitungFI ELSE wertesetzenfuerweiterebearbeitung;
+sortalpha:=TRUE FI ;FI ;FI .wieausgabepruefen:standardpruefe(5,fnralphasort,
+fnrklassensort,null,niltext,eingabestatus).wertesetzenfuerweiterebearbeitung:
+sortalpha:=standardmaskenfeld(fnrklassensort)=niltext;setzeausgabedrucker(
+standardmaskenfeld(fnrausgbild)=niltext);setzeeingabetest(TRUE ).
+falschausgefuellt:eingabestatus<>0.meldefehler:standardmeldung(
+mnrauswahlnichtsinnvoll,niltext).END PROC adrlieingabenrichtig;PROC
+adrlilistenvorbereiten:BOOL VAR b:=FALSE ;INT VAR staticfield:=dnrschueler+1;
+vergldatum:=vergleichsdatum(altervolljaehrig);startjahr:=jahrgangsstufe;
+startzug:=zug;IF sortalphaTHEN IF startjahr<>niltextTHEN IF startzug<>niltext
+THEN aktuelleindexnr:=ixsustatjgstzugELSE aktuelleindexnr:=ixsustatjgstFI ;
+ELSE staticfield:=fnrsustatuss;#?????#aktuelleindexnr:=ixsustatfamrufgeb#
+aktuelleindexnr:=ixsustat#FI ;ELSE IF startjahr=""THEN staticfield:=
+fnrsusgrpjgstELSE staticfield:=fnrsusgrpzugtutFI ;aktuelleindexnr:=
+ixsustatjgstzugFI ;inittupel(dnrschueler);initobli(2);parsenooffields(34);
+setzeidentiwert("");putwert(fnrsusgrpjgst,startjahr);putwert(fnrsusgrpzugtut,
+startzug);putwert(fnrsustatuss,"ls");#objektlistestarten(aktuelleindexnr,"",
+fnrsustatuss,TRUE ,b);#objektlistestarten(aktuelleindexnr,"",staticfield,
+TRUE ,b);setzebestandende(NOT multistopCOR b)END PROC adrlilistenvorbereiten;
+PROC adrlibildschirmvorbereiten:LET fnrausganf=2;ueberschriftvorbereitenbild;
+standardkopfmaskeaktualisieren(ueberschrift1);bildanf:=fnrausganf;#
+setzenderhilfsgroessenfuersblaettern(min(maxblocklaenge,bildblocklaenge),
+bildsatzzahl);#setzebildanfangsposition(bildanf).END PROC
+adrlibildschirmvorbereiten;PROC ueberschriftvorbereitenbild:LET aufein="",
+aufaus=" ";ueberschrift1:=adrliueberschrift;IF NOT alleTHEN ueberschrift1:=
+ueberschrift1+komma+blank;IF einjahrgangTHEN ueberschrift1:=ueberschrift1+
+uebteil21+aufein+jahrgangsstufe+aufausELSE IF int(jahrgangsstufe)<11THEN
+ueberschrift1:=ueberschrift1+uebteil22ELSE ueberschrift1:=ueberschrift1+
+uebteil23FI ;ueberschrift1:=ueberschrift1+aufein+jahrgangsstufe+blank+zug+
+aufausFI FI ;END PROC ueberschriftvorbereitenbild;PROC adrliseitezeigen:
+blaettern(PROC (INT CONST )adressdatenzeigen,aktion,TRUE ,aktuelleindexnr<>
+dnrschueler,BOOL PROC multistop)END PROC adrliseitezeigen;PROC
+adressdatenzeigen(INT CONST x):TEXT CONST leerzeile:=text(blank,bildbreite);
+INT VAR i;adressdatenholen;adressdatenaufbereiten(bildbreite);
+ggfleerzeilenfuellen;adressdatenaufbildschirm.ggfleerzeilenfuellen:
+ausgfeldzeileINCR 1;FOR iFROM ausgfeldzeileUPTO ausgfeldlaenge-1REP ausgfeld(
+i):=leerzeilePER .END PROC adressdatenzeigen;PROC adressdatenaufbildschirm:
+INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREPEAT ausgfeld(i)IN ausgabepos;
+erhoeheausgabeposumeinsEND REPEAT .END PROC adressdatenaufbildschirm;PROC
+adrlidruckvorbereiten:IF (alleOR einjahrgang)AND NOT sortalphaTHEN zaehler:=
+null;neueklasse:=TRUE ELSE anfbuchstabe:=niltextFI ;druckvorbereiten;
+variablenfuerdrucksetzen;holemeldungen;inittupel(dnrschueler);putwert(
+fnrsusgrpjgst,startjahr);putwert(fnrsusgrpzugtut,startzug);putwert(
+fnrsustatuss,"ls");lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,INT VAR
+)scanforward,BOOL PROC multistopsim);ueberschriftvorbereitendruck;
+initdruckkopf(zentriert(ueberschrift1,druckbreite),zentriert(ueberschrift2,
+druckbreite)).variablenfuerdrucksetzen:druckzeilenzahl:=drucklaenge(
+ueberschriftenzeilen);druckstrich:=druckbreite*mittestrich.holemeldungen:
+meldungstext(mnrbearbeitetwird,bearbeitetwird);meldungstext(
+mnrbearbeitetwerden,bearbeitetwerden).END PROC adrlidruckvorbereiten;PROC
+ueberschriftvorbereitendruck:jahrgangsstufe:=wert(fnrsusgrpjgst);zug:=wert(
+fnrsusgrpzugtut);ueberschrift1:=compress(adrliueberschrift);#dr28.03.88#IF
+alleTHEN IF sortalphaTHEN ueberschrift2:=uebteil24ELSE klassenueberschriftFI
+ELSE IF einjahrgangTHEN IF sortalphaTHEN ueberschrift2:=uebteil21+
+jahrgangsstufe+komma+blank+uebteil24ELSE klassenueberschriftFI ELSE
+klassenueberschriftFI FI .klassenueberschrift:IF int(jahrgangsstufe)<11THEN
+ueberschrift2:=uebteil22ELSE ueberschrift2:=uebteil23FI ;ueberschrift2:=
+ueberschrift2+jahrgangsstufe+blank+zug.END PROC ueberschriftvorbereitendruck;
+PROC adrliseitedrucken:adrliueberschriftdrucken;IF (alleOR einjahrgang)AND
+NOT sortalphaTHEN seitedrucken(PROC (INT VAR )adressdatendrucken,
+druckzeilenzahl,ausgfeldlaenge,PROC bestandendesimulierenbeiklassenwechsel,
+BOOL PROC multistopsim);IF neueklasseTHEN simuliertesendezuruecknehmen;
+neuelistevorbereitenELSE seitenwechselFI ELSE seitedrucken(PROC (INT VAR )
+adressdatendrucken,druckzeilenzahl,ausgfeldlaenge,BOOL PROC multistopsim);
+seitenwechselFI .simuliertesendezuruecknehmen:setzebestandende(FALSE ).
+neuelistevorbereiten:meldelistewirdgedruckt;drucknachbereiten;
+druckvorbereiten;zaehler:=null;ueberschriftvorbereitendruck;initdruckkopf(
+zentriert(ueberschrift1,druckbreite),zentriert(ueberschrift2,druckbreite)).
+meldelistewirdgedruckt:standardmeldung(mnrlistewirdgedruckt,"").END PROC
+adrliseitedrucken;PROC adrliueberschriftdrucken:druckkopfschreiben.END PROC
+adrliueberschriftdrucken;PROC adressdatendrucken(INT VAR zeilenzaehler):LET
+markiert="#";adressdatenholen;ggfmeldung;zaehlerINCR 1;adressdatenaufbereiten
+(druckbreite);zeilenzaehlerINCR ausgfeldzeile;adressdatenindruckdatei.
+ggfmeldung:IF (alleOR einjahrgang)AND NOT sortalphaTHEN ggfmeldungklasseELSE
+ggfmeldunganfbuchstabeEND IF .ggfmeldungklasse:IF zaehler=nullTHEN
+standardmeldung(bearbeitetwird,jahrgangsstufe+blank+zug+markiert)FI .
+ggfmeldunganfbuchstabe:IF anfangsbuchstabegeaendertTHEN meldunganfbuchstabe
+END IF .anfangsbuchstabegeaendert:neueranfbuchstabe:=schuelernameSUB 1;
+anfbuchstabe<>neueranfbuchstabe.meldunganfbuchstabe:standardmeldung(
+bearbeitetwerden,neueranfbuchstabe+markiert);anfbuchstabe:=neueranfbuchstabe.
+END PROC adressdatendrucken;PROC adressdatenindruckdatei:INT VAR i;FOR iFROM
+1UPTO ausgfeldzeileREP druckzeileschreiben(ausgfeld(i))PER .END PROC
+adressdatenindruckdatei;PROC bestandendesimulierenbeiklassenwechsel:IF
+bestandendeTHEN neueklasse:=FALSE ELSE nochklassezubearbeiten;IF neueklasse
+THEN setzebestandende(TRUE )FI ;FI .nochklassezubearbeiten:neueklasse:=zug<>
+wert(fnrsusgrpzugtut);IF alleTHEN neueklasse:=neueklasseOR (int(
+jahrgangsstufe)<>int(wert(fnrsusgrpjgst)))FI .END PROC
+bestandendesimulierenbeiklassenwechsel;PROC adressdatenholen:schuelername:=
+wert(fnrsufamnames);schuelervorname:=wert(fnrsurufnames);schuelernamenszusatz
+:=wert(fnrsunamenszusatzs);schuelergebname:=wert(fnrsugebnames);gebdat:=wert(
+fnrsugebdatums);jahrgangsstufe:=wert(fnrsusgrpjgst);zug:=wert(fnrsusgrpzugtut
+);adressename:=wert(fnrsuwohntbei);adressestrasse:=wert(fnrsustrnrs);
+adresseort:=wert(fnrsuplzorts);adressetelnr:=wert(fnrsutelnrs);erzbername:=
+wert(fnrsufamnamee);erzbervorname:=wert(fnrsuvornamee);erzbernamenszusatz:=
+wert(fnrsunamenszusatze);erzberstrasse:=wert(fnrsustrnre);erzberort:=wert(
+fnrsuplzorte);erzbertelnr:=wert(fnrsutelnre)END PROC adressdatenholen;PROC
+adressdatenaufbereiten(INT CONST breite):LET prebreite=19,klassetelnrbreite=
+21,deutsch="D",namevornametrenner=", ",gebnamepre=", geb. ",gebdatpre=
+" Geb.Dat.: ",vollj="(Vollj.)",klassepre="Klasse: ",adressepre=
+" Adresse : ",preleer=" ",adressnamepre="bei ",
+telnrpre="Tel.: ",erzberpre=" Erz.Ber.: ";INT CONST breiteohnepre:=
+breite-prebreite,ortgebdatbreite:=breiteohnepre-klassetelnrbreite;
+schreibenamenszeile;schreibegebdatundggfklasse;schreibeschueleradresse;
+schreibeggferzberadresse.schreibenamenszeile:ausgfeld(1):=text(
+zusammengesetztername,breite).zusammengesetztername:subtext(schuelername+
+namevornametrenner+schuelervorname+blank+schuelernamenszusatz+gebname,1,
+breite).gebname:IF schuelergebname=niltextTHEN niltextELSE gebnamepre+
+schuelergebnameEND IF .schreibegebdatundggfklasse:ausgfeld(2):=gebdatpre+
+gebdatundggfklasse.gebdatundggfklasse:IF alleOR einjahrgangTHEN text(gebdat+
+ggfvollj,ortgebdatbreite)+text(klassepre+klasse,klassetelnrbreite)ELSE text(
+gebdat+ggfvollj,breiteohnepre)FI .klasse:jahrgangsstufe+blank+zug.ggfvollj:
+IF volljaehrig(datum(gebdat))THEN volljELSE niltextEND IF .
+schreibeschueleradresse:IF adressename=niltextTHEN ausgfeld(3):=text(
+adressepre+adressestrasse,breite);ausgfeldzeile:=4ELSE ausgfeld(3):=text(
+adressepre+adressnamepre+adressename,breite);ausgfeld(4):=text(preleer+
+adressestrasse,breite);ausgfeldzeile:=5FI ;ausgfeld(ausgfeldzeile):=preleer+
+ortundggftelefon.ortundggftelefon:IF adressetelnr=niltextTHEN text(
+adresseggflandundort,breiteohnepre)ELSE text(adresseggflandundort,
+ortgebdatbreite)+text(telnrpre+adressetelnr,klassetelnrbreite)FI .
+adresseggflandundort:adresseort.schreibeggferzberadresse:IF erzbername=
+niltextTHEN schreibeleerzeileELSE schreibeerzberadresseFI .
+schreibeerzberadresse:schreibeerzbername;schreibeggferzberstrort.
+schreibeerzbername:ausgfeldzeileINCR 1;ausgfeld(ausgfeldzeile):=text(
+erzberpre+ggferzbernamenszusatz+erzbername+namevornametrenner+erzbervorname,
+breite).ggferzbernamenszusatz:IF erzbernamenszusatz<>niltextTHEN
+erzbernamenszusatz+blankELSE niltextFI .schreibeggferzberstrort:IF (
+erzberstrasse=niltext)AND (erzberort=niltext)THEN schreibeleerzeileELSE
+schreibeerzberstrasse;schreibeerzberortundggftelnrFI .schreibeerzberstrasse:
+ausgfeldzeileINCR 1;ausgfeld(ausgfeldzeile):=text(preleer+erzberstrasse,
+breite).schreibeerzberortundggftelnr:ausgfeldzeileINCR 1;ausgfeld(
+ausgfeldzeile):=preleer+erzberortundggftelefon.erzberortundggftelefon:IF
+erzbertelnr=niltextTHEN text(erzberggflandundort,breiteohnepre)ELSE text(
+erzberggflandundort,ortgebdatbreite)+text(telnrpre+erzbertelnr,
+klassetelnrbreite)FI .erzberggflandundort:erzberort.schreibeleerzeile:
+ausgfeldzeileINCR 1;ausgfeld(ausgfeldzeile):=text(blank,breite).END PROC
+adressdatenaufbereiten;BOOL PROC volljaehrig(INT CONST geburtstag):geburtstag
+<=vergldatumEND PROC volljaehrig;END PACKET adressenlisten;
+