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