summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/1.listen.prot versetzkonferenz
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/1.listen.prot versetzkonferenz')
-rw-r--r--app/schulis/2.2.1/src/1.listen.prot versetzkonferenz162
1 files changed, 162 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/1.listen.prot versetzkonferenz b/app/schulis/2.2.1/src/1.listen.prot versetzkonferenz
new file mode 100644
index 0000000..976d67c
--- /dev/null
+++ b/app/schulis/2.2.1/src/1.listen.prot versetzkonferenz
@@ -0,0 +1,162 @@
+PACKET protversetzkonflistenDEFINES konfprolispezielleteile:LET
+mnrbearbeitetwirdjgst=106,mnrbearbeitetwirdklasse=107,mnrbearbeitetwirdkurs=
+108;TEXT VAR bearbeitetwirdjgst,bearbeitetwirdklasse,bearbeitetwirdkurs,
+startjahr,startzug;INT VAR aktuelleindexnr;LET niltext="",nildatum="01.01.00"
+,null=0,blank=" ",mittestrich="-",doppelpunkt=":",vordr1ueberarb=
+"vordruck1 ueberarbeitet",vordr2ueberarb="vordruck2 ueberarbeitet",
+vordr3ueberarb="vordruck3 ueberarbeitet",spalte2breite=52,anzspaltentrenner=1
+,ausgkopflaenge=3,ausgfeldlaenge=2,AUSGFELD =ROW ausgfeldlaengeTEXT ,
+AUSGKOPF =ROW ausgkopflaengeTEXT ,konfprolieingangsmaske=
+"ms liste konfpro eingang",konfprolianfpos=2;INT VAR spalte1breite,
+druckzeilenzahl,druckzeilenzahlrest,zeilenanz,schuelerzaehler,eingabestatus;
+TEXT VAR konfproliueberschrift,zug,jahrgang,schuelername,schuelerrufname,
+schuelernamenszus,schuelergebdat,zugangjgst,abmeldedat,schuelerjgst,
+schuelerzug,vordruck,vordruckueberarbeitet,druckstrich;AUSGFELD VAR
+ausgfelddruck;AUSGKOPF VAR ausgkopfdruck;BOOL VAR sek1,einjahrgang,alle,
+neuesmerkmal;FILE VAR f;PROC konfprolispezielleteile(INT CONST nr):SELECT nr
+OF CASE 1:konfprolidialogvorbereitenCASE 2:konfprolieingabenrichtigCASE 3:
+konfprolilistenvorbereitenCASE 4:konfprolidruckvorbereitenCASE 5:
+konfproliseitedruckenENDSELECT .END PROC konfprolispezielleteile;PROC
+konfprolidialogvorbereiten:konfproliueberschrift:=text(vergleichsknoten);
+setzeanfangswerte(konfprolieingangsmaske,konfprolianfpos).END PROC
+konfprolidialogvorbereiten;PROC konfprolieingabenrichtig:LET fnrmskjgst=2,
+fnrmskzug=3,auswahlnichtsinnvoll=56;sek1:=FALSE ;alle:=FALSE ;einjahrgang:=
+FALSE ;jahrgang:="";zug:=compress(standardmaskenfeld(fnrmskzug));IF
+standardmaskenfeld(fnrmskjgst)=niltextTHEN IF zug=niltextTHEN alle:=TRUE ;
+sek1:=TRUE ;setzeausgabedrucker(TRUE );setzeeingabetest(TRUE )ELSE
+meldefehler;infeld(fnrmskzug);setzeeingabetest(FALSE )FI ELSE standardpruefe(
+3,fnrmskjgst,5,13,niltext,eingabestatus);IF eingabestatus<>0THEN infeld(
+eingabestatus);setzeeingabetest(FALSE )ELSE jahrgang:=zweistellig(
+standardmaskenfeld(fnrmskjgst));einjahrgang:=(zug=niltext);IF int(jahrgang)<
+11THEN sek1:=TRUE FI ;setzeausgabedrucker(TRUE );setzeeingabetest(TRUE )FI
+FI .meldefehler:standardmeldung(auswahlnichtsinnvoll,niltext).END PROC
+konfprolieingabenrichtig;PROC konfprolilistenvorbereiten:BOOL VAR b:=FALSE ;
+startjahr:=jahrgang;startzug:=zug;IF startjahr>"10"CAND startzug=niltextTHEN
+aktuelleindexnr:=ixsustatjgstELSE aktuelleindexnr:=ixsustatjgstzugFI ;
+dbstatus(ok);inittupel(dnrschueler);initobli(1);parsenooffields(19);
+setzeidentiwert("");putwert(fnrsusgrpjgst,startjahr);putwert(fnrsusgrpzugtut,
+startzug);putwert(fnrsustatuss,"ls");#objektlistestarten(aktuelleindexnr,"",
+fnrsusgrpjgst,TRUE ,b);#objektlistestarten(aktuelleindexnr,"",staticfield,
+TRUE ,b);setzebestandende(NOT multistopkonf).staticfield:IF aktuelleindexnr=
+ixsustatjgstzugTHEN fnrsusgrpzugtutELSE dnrschueler+1FI .END PROC
+konfprolilistenvorbereiten;PROC konfprolidruckvorbereiten:LET prevordruck=
+"vordruck",postvordruck=" protokoll versetzkonf",vordr3=
+"vordruck3 protokoll versetzkonf",anzvordrucke=3,manager="anschreiben server"
+;INT VAR i;schuelerzaehler:=null;jahrgang:=wert(fnrsusgrpjgst);zug:=wert(
+fnrsusgrpzugtut);aktuellevordruckevommanagerholen;neuesmerkmal:=TRUE ;
+druckvorbereiten;variablenfuerdrucksetzen;vordruck3fuellen;
+setzesonderwerteschulkenndaten;holemeldungen;putwert(dateinr(primdatid(
+aktuelleindexnr))+1,"");putwert(fnrsusgrpjgst,startjahr);putwert(
+fnrsusgrpzugtut,startzug);lesenvorbereitendruck(PROC (INT CONST ,BOOL PROC ,
+INT VAR )scanforward,BOOL PROC multistopkonfsim);initspalten;
+initausgabekopfdruck.holemeldungen:meldungstext(mnrbearbeitetwirdjgst,
+bearbeitetwirdjgst);meldungstext(mnrbearbeitetwirdklasse,bearbeitetwirdklasse
+);meldungstext(mnrbearbeitetwirdkurs,bearbeitetwirdkurs).
+aktuellevordruckevommanagerholen:FOR iFROM 1UPTO anzvordruckeREP forget(
+prevordruck+text(i)+postvordruck,quiet);fetch(prevordruck+text(i)+
+postvordruck,/manager);PER .variablenfuerdrucksetzen:druckstrich:=druckbreite
+*mittestrich;spalte1breite:=druckbreite-anzspaltentrenner-spalte2breite.
+vordruck3fuellen:vordruck:=vordr3;vordruckueberarbeitet:=vordr3ueberarb;
+forget(vordruckueberarbeitet,quiet);briefalternative(vordruck,
+vordruckueberarbeitet).END PROC konfprolidruckvorbereiten;PROC
+initausgabekopfdruck:LET name=" :Familienname",rufname=" : Rufname",
+rest1=" : :Erg. :Fächer:",rest2=
+"Geb.dat.:Bem.:v/w/n :Nachpr:Gründe";hilfsfeldervorbelegen;spaltenweise(name)
+;spaltenweise(rest1);ausgkopfdruck(1):=zeile;spaltenweise(rufname);
+spaltenweise(rest2);ausgkopfdruck(2):=zeile;ausgkopfdruck(3):=druckstrich.
+hilfsfeldervorbelegen:setzespaltentrenner(blank);setzespaltenbreite(
+spalte1breite);setzespaltenbreite(spalte2breite).END PROC
+initausgabekopfdruck;PROC konfproliseitedrucken:LET listewirdgedruckt=58;
+konfproliueberschriftdrucken;seitedrucken(PROC (INT VAR )schuelerdatendrucken
+,druckzeilenzahl,ausgfeldlaenge,PROC bestandendesimulierenbeimerkmalwechsel,
+BOOL PROC multistopkonfsim);IF neuesmerkmalTHEN simuliertesendezuruecknehmen;
+konfproliunterschriftdrucken;meldelistewirdgedruckt;drucknachbereiten;
+schuelerzaehler:=null;neuelistevorbereitenELIF NOT bestandendeTHEN
+seitenwechselFI .simuliertesendezuruecknehmen:setzebestandende(FALSE ).
+meldelistewirdgedruckt:standardmeldung(listewirdgedruckt,niltext).
+neuelistevorbereiten:druckvorbereiten.END PROC konfproliseitedrucken;PROC
+konfproliueberschriftdrucken:LET vordr1="vordruck1 protokoll versetzkonf",
+vordr2="vordruck2 protokoll versetzkonf",anzleerzeilen=2,markiert="#";INT
+VAR i;TEXT VAR klassejgstaufber;IF neuesmerkmalTHEN
+zwischenmeldungundvordruckefuellenFI ;vordruck1schreiben;IF neuesmerkmalTHEN
+vordruck2schreibenFI ;leerzeilenschreiben;ausgabekopfschreiben.
+zwischenmeldungundvordruckefuellen:LET swiklassebzwjgst=511,
+swianwesendelehrer=512,klasse="Klasse ",kurs="Tutorenkurs ",jgst="Jgst. ";
+klassejgstaufber:=jahrgang;IF (alleOR einjahrgang)AND NOT sek1THEN
+standardmeldung(bearbeitetwirdjgst,klassejgstaufber+markiert);
+klassejgstaufber:=jgst+klassejgstaufberELSE klassejgstaufber:=
+klassejgstaufber+blank+zug;IF sek1THEN standardmeldung(bearbeitetwirdklasse,
+klassejgstaufber+markiert);klassejgstaufber:=klasse+klassejgstaufberELSE
+standardmeldung(bearbeitetwirdkurs,klassejgstaufber+markiert);
+klassejgstaufber:=kurs+klassejgstaufberFI ;FI ;festesonderwertesetzen;
+vordruck:=vordr1;vordruckueberarbeitet:=vordr1ueberarb;forget(
+vordruckueberarbeitet,quiet);briefalternative(vordruck,vordruckueberarbeitet)
+;vordruck:=vordr2;vordruckueberarbeitet:=vordr2ueberarb;forget(
+vordruckueberarbeitet,quiet);briefalternative(vordruck,vordruckueberarbeitet)
+.festesonderwertesetzen:setzesonderwert(swiklassebzwjgst,klassejgstaufber);
+setzesonderwert(swianwesendelehrer,blank).vordruck2schreiben:
+vordruckueberarbeitet:=vordr2ueberarb;f:=sequentialfile(input,
+vordruckueberarbeitet);zeilenanz:=lines(f);FOR iFROM 1UPTO zeilenanzREP
+getline(f,ausgfelddruck(1));druckzeileschreiben(ausgfelddruck(1));PER ;
+druckzeilenzahlDECR zeilenanz.leerzeilenschreiben:FOR iFROM 1UPTO
+anzleerzeilenREP druckzeileschreiben(blank)PER ;druckzeilenzahlDECR
+anzleerzeilen.ausgabekopfschreiben:FOR iFROM 1UPTO ausgkopflaengeREP
+druckzeileschreiben(ausgkopfdruck(i))PER ;druckzeilenzahlDECR ausgkopflaenge;
+druckzeilenzahlrest:=druckzeilenzahl.END PROC konfproliueberschriftdrucken;
+PROC konfproliunterschriftdrucken:INT VAR i;vordruck3holen;vordruck3schreiben
+.vordruck3holen:vordruckueberarbeitet:=vordr3ueberarb;f:=sequentialfile(input
+,vordruckueberarbeitet);zeilenanz:=lines(f).vordruck3schreiben:IF zeilenanz>
+druckzeilenzahlrestTHEN seitenwechselmitneuemkopfFI ;FOR iFROM 1UPTO
+zeilenanzREP getline(f,ausgfelddruck(1));druckzeileschreiben(ausgfelddruck(1)
+);PER ;druckzeilenzahlrestDECR zeilenanz.seitenwechselmitneuemkopf:
+seitenwechsel;vordruck1schreiben;druckzeilenzahlrest:=druckzeilenzahl;
+vordruck3holen.END PROC konfproliunterschriftdrucken;PROC vordruck1schreiben:
+INT VAR i;druckzeilenzahl:=drucklaenge;vordruckueberarbeitet:=vordr1ueberarb;
+f:=sequentialfile(input,vordruckueberarbeitet);zeilenanz:=lines(f);FOR iFROM
+1UPTO zeilenanzREP getline(f,ausgfelddruck(1));druckzeileschreiben(
+ausgfelddruck(1));PER ;druckzeilenzahlDECR zeilenanz.END PROC
+vordruck1schreiben;PROC schuelerdatendrucken(INT VAR zeilenzaehler):
+schuelerdatenholen;schuelerdatenaufbereiten;zeilenzaehlerINCR ausgfeldlaenge;
+schuelerdatenindruckdatei.END PROC schuelerdatendrucken;PROC
+schuelerdatenholen:schuelername:=wert(fnrsufamnames);schuelerrufname:=wert(
+fnrsurufnames);schuelernamenszus:=wert(fnrsunamenszusatzs);schuelergebdat:=
+wert(fnrsugebdatums);zugangjgst:=wert(fnrsuartzugang);abmeldedat:=wert(
+fnrsuabgdats);schuelerjgst:=wert(fnrsusgrpjgst);schuelerzug:=wert(
+fnrsusgrpzugtut).END PROC schuelerdatenholen;PROC schuelerdatenaufbereiten:
+LET unterstrich="_",bem1="w",bem2="x",abgemeldet="ab",gebdatlaenge=8,
+zugangjgstlaenge=4,ausgleich1=3,ausgleich2=2,abgemlaenge1=4,abgemlaenge2=2,
+rest1=": : :",rest2=":______:______:________________________";
+schuelerzaehlerINCR 1;schreibenamegebdatbemerkungen.
+schreibenamegebdatbemerkungen:setzespaltentrenner(blank);spaltenweise(
+schuelernameundnraufber);spaltenweise(schuelerbemteil1aufber);ausgfelddruck(1
+):=zeile;setzespaltentrenner(unterstrich);spaltenweise(schuelerrufnameaufber)
+;spaltenweise(schuelerbemteil2aufber);ausgfelddruck(2):=zeile.
+schuelernameundnraufber:IF schuelernamenszus=niltextTHEN nr+doppelpunkt+
+schuelernameELSE nr+doppelpunkt+schuelernamenszus+blank+schuelernameFI .nr:(
+ausgleich1-length(text(schuelerzaehler)))*blank+text(schuelerzaehler).
+schuelerbemteil1aufber:gebdatlaenge*blank+doppelpunkt+zugangjgstaufber+rest1.
+zugangjgstaufber:IF (zugangjgst=bem1)OR (zugangjgst=bem2)THEN zugangjgst+(
+zugangjgstlaenge-length(zugangjgst))*blankELSE zugangjgstlaenge*blankFI .
+schuelerrufnameaufber:ausgleich1*unterstrich+doppelpunkt+ausgleich2*
+unterstrich+schuelerrufname+anzunterstriche*unterstrich.
+schuelerbemteil2aufber:schuelergebdat+doppelpunkt+abgemeldetaufber+rest2.
+anzunterstriche:spalte1breite-ausgleich2-length(schuelerrufname).
+abgemeldetaufber:IF abmeldedat=nildatumTHEN abgemlaenge1*unterstrichELSE
+abgemeldet+abgemlaenge2*unterstrichFI .END PROC schuelerdatenaufbereiten;
+PROC schuelerdatenindruckdatei:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP
+druckzeileschreiben(ausgfelddruck(i))PER ;druckzeilenzahlrestDECR
+ausgfeldlaenge.END PROC schuelerdatenindruckdatei;PROC
+bestandendesimulierenbeimerkmalwechsel:IF bestandendeTHEN neuesmerkmal:=
+FALSE ;konfproliunterschriftdruckenELSE nochklassebzwjgstzubearbeiten;IF
+neuesmerkmalTHEN setzebestandende(TRUE )FI ;FI .nochklassebzwjgstzubearbeiten
+:jahrgang:=wert(fnrsusgrpjgst);zug:=wert(fnrsusgrpzugtut);neuesmerkmal:=
+neuejgst;IF neuesmerkmalAND int(jahrgang)>10THEN sek1:=FALSE FI ;IF sek1THEN
+neuesmerkmal:=neuesmerkmalOR neuerzugFI .neuejgst:schuelerjgst<>jahrgang.
+neuerzug:schuelerzug<>zug.END PROC bestandendesimulierenbeimerkmalwechsel;
+BOOL PROC multistopkonf:BOOL VAR b:=#TRUE ;#FALSE ;IF wert(fnrsustatuss)="ls"
+THEN b:=TRUE ;IF startjahr<>""THEN IF startzug=niltextTHEN b:=(wert(
+fnrsusgrpjgst)=startjahr)ELSE b:=(wert(fnrsusgrpzugtut)=startzugAND wert(
+fnrsusgrpjgst)=startjahr)FI ;FI ;FI ;bEND PROC multistopkonf;BOOL PROC
+multistopkonfsim:BOOL VAR b:=multistopkonf;setzebestandende(NOT b);bENDPROC
+multistopkonfsim;END PACKET protversetzkonflisten;
+