PACKET auskunftlehrerDEFINES lehrerauskunfteingang,lehrerauskunftstarten, lehrerauskunftsonderwerte:LET anrede=511,nameaufbereitet=513;INT VAR x,index :=dnrlehrer,aktuellesfach,aktuelleart,aktuelleartlehrbefaehigunglangtext;LET schulj=526,halbj=527,ermaessgrund1langtext=550,ermaessgrund2langtext=551, ermaessgrund3langtext=552,ermaessgrund4langtext=553;INT VAR aktswklassenlehrer:=580,aktswstellvertreter:=581;LET ganztage=520,ganzgew=521 ,vormtage=522,vormgew=523,nachtage=524,nachgew=525;LET swdatum=520,swzeit=521 ,swart=522,swlv=523;LET maske="ms auskunft lehrer eingang",paraphenfeldnr=2, trenner="/",niltext="",blank=" ",strich=" --- ",mnrbittewarten=69, mnrkeinegueltigeparaphe=344;TEXT CONST dateimitvordruck1:= "vordruck1 auskunft lehrer",dateimitvordruck2:="vordruck2 auskunft lehrer", dateimitvordruck3:="vordruck3 auskunft lehrer",dateimitvordruck4:= "vordruck4 auskunft lehrer",dateimitvordruck5:="vordruck5 auskunft lehrer", dateimitvordruck6:="vordruck6 auskunft lehrer",dateimitvordruck7:= "vordruck7 auskunft lehrer",bestandnameartlehrbefaehigung:= "c02 art lehrbefaehigung",bestandnamepersoenlermaessigung:= "c02 persoenl ermaess";TEXT VAR angegebeneparaphe:="",aktuelleshalbjahr, aktuellesschuljahr,geplanteshalbjahr,geplantesschuljahr,schuljahr:="", halbjahr:="";INT VAR zeilenzahl,zeilenhilfszahl,zusatzzeilen;BOOL PROC paraphevorhanden:putwert(fnrlparaphe,angegebeneparaphe);search(dnrlehrer, TRUE );IF dbstatus=0THEN TRUE ELSE FALSE FI END PROC paraphevorhanden;PROC lehrerauskunfteingang:standardvproc(maske)END PROC lehrerauskunfteingang; PROC lehrerauskunftstarten:angegebeneparaphe:=standardmaskenfeld( paraphenfeldnr);IF angegebeneparaphe<>niltextTHEN startenausfuehrenELSE meldeeingabefehler;zurueckzumdialogFI ;.meldeeingabefehler:standardmeldung( mnrkeinegueltigeparaphe,niltext).zurueckzumdialog:return(1).startenausfuehren :IF NOT (paraphevorhanden)THEN meldeeingabefehler;zurueckzumdialogELSE BOOL CONST bildschirmausgabe:=FALSE ,einzelbearbeitung:=TRUE ;aktuelleshalbjahr:= schulkenndatum("Schulhalbjahr");aktuellesschuljahr:=schulkenndatum( "Schuljahr");geplanteshalbjahr:=aktuelleshalbjahr;geplantesschuljahr:= aktuellesschuljahr;geplanteshjundsjberechnen(geplanteshalbjahr, geplantesschuljahr);setzesonderwerteschulkenndaten;setzewerte;standardmeldung (mnrbittewarten,niltext);zusammengesetztesanschreiben(index,bildschirmausgabe ,einzelbearbeitung,BOOL PROC lehrerauskunftsonderwerte,BOOL PROC scanbedingung,TEXT PROC druckdateibauen);FI ;.setzewerte:putwert(fnrlparaphe, angegebeneparaphe)END PROC lehrerauskunftstarten;BOOL PROC scanbedingung:IF dbstatus=0THEN TRUE ELSE FALSE FI END PROC scanbedingung;BOOL PROC lehrerauskunftsonderwerte:LET sechs=6;ROW sechsTEXT VAR artlehrbefaehigung; initialisieresonderwerte;adressat(angegebeneparaphe);TEXT VAR anredetext:= "Frau";IF wert(fnrlgeschlecht)="m"THEN anredetext:="Herrn"FI ;setzesonderwert (anrede,anredetext);setzesonderwert(nameaufbereitet,wert(fnrlrufname)+" "+ wert(fnrlzusatz)+" "+wert(fnrlfamname));TEXT VAR grund1,grund2,grund3,grund4; grund1:=wert(fnrlermgrund1);grund2:=wert(fnrlermgrund2);grund3:=wert( fnrlermgrund3);grund4:=wert(fnrlermgrund4);inittupel(dnrlehrbefaehigungen); putwert(fnrlbparaphe,angegebeneparaphe);search(ixlbpar,FALSE );aktuellesfach :=514;aktuelleart:=515;aktuelleartlehrbefaehigunglangtext:=554;FOR xFROM 1 UPTO sechsREP IF dbstatus=0AND wert(fnrlbparaphe)=angegebeneparapheTHEN setzesonderwert(aktuellesfach,wert(fnrlbfach));artlehrbefaehigung(x):=wert( fnrlbart);setzesonderwert(aktuelleart,artlehrbefaehigung(x));ELSE setzesonderwert(aktuellesfach,niltext);artlehrbefaehigung(x):=niltext; setzesonderwert(aktuelleart,niltext);FI ;succ(ixlbpar);aktuellesfachINCR 2; aktuelleartINCR 2PER ;inittupel(dnrschluessel);putwert(fnrschlsachgebiet, bestandnamepersoenlermaessigung);putwert(fnrschlschluessel,grund1);search( dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(ermaessgrund1langtext, wert(fnrschllangtext))ELSE setzesonderwert(ermaessgrund1langtext,blank)FI ; putwert(fnrschlschluessel,grund2);search(dnrschluessel,TRUE );IF dbstatus=0 THEN setzesonderwert(ermaessgrund2langtext,wert(fnrschllangtext));ELSE setzesonderwert(ermaessgrund2langtext,blank);FI ;putwert(fnrschlschluessel, grund3);search(dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert( ermaessgrund3langtext,wert(fnrschllangtext))ELSE setzesonderwert( ermaessgrund3langtext,blank)FI ;putwert(fnrschlschluessel,grund4);search( dnrschluessel,TRUE );IF dbstatus=0THEN setzesonderwert(ermaessgrund4langtext, wert(fnrschllangtext))ELSE setzesonderwert(ermaessgrund4langtext,blank)FI ; putwert(fnrschlsachgebiet,bestandnameartlehrbefaehigung);FOR xFROM 1UPTO 6 REP putwert(fnrschlschluessel,artlehrbefaehigung(x));search(dnrschluessel, TRUE );IF dbstatus=0THEN setzesonderwert(aktuelleartlehrbefaehigunglangtext, wert(fnrschllangtext))ELSE setzesonderwert(aktuelleartlehrbefaehigunglangtext ,blank)FI ;aktuelleartlehrbefaehigunglangtextINCR 1PER ;TRUE END PROC lehrerauskunftsonderwerte;TEXT PROC druckdateibauen:LET druckdatei="liste.1", hilfsdatei="hilfsdatei";TEXT VAR zeile;INT VAR i;BOOL VAR mitdatendesgeplhjs :=FALSE ;BOOL VAR weiteresaetzeda:=FALSE ;vordruckeholen; setzemitseitennummern(TRUE );druckvorbereiten;zeilenzahl:=0;zusatzzeilen:=0; briefalternative(dateimitvordruck1,hilfsdatei);hilfsdateiindruckdatei( hilfsdatei);zusatzzeilen:=5;sonderwertsjundhjsetzen(aktuellesschuljahr, aktuelleshalbjahr);ggfvordruck21malundvordruck3xmalindruckdatei( mitdatendesgeplhjs);mitdatendesgeplhjs:=TRUE ;sonderwertsjundhjsetzen( geplantesschuljahr,geplanteshalbjahr); ggfvordruck21malundvordruck3xmalindruckdatei(mitdatendesgeplhjs);zusatzzeilen :=4;vordruck4indruckdatei(aktuellesschuljahr,aktuelleshalbjahr); vordruck4indruckdatei(geplantesschuljahr,geplanteshalbjahr);zusatzzeilen:=14; vordruck5indruckdatei(aktuellesschuljahr,aktuelleshalbjahr); vordruck5indruckdatei(geplantesschuljahr,geplanteshalbjahr);zusatzzeilen:=4; ggf1malvordruck6undxmalvordruck7indruckdatei;drucknachbereitenohneausdrucken; vordruckeloeschen;druckdatei.vordruckeholen:fetch(dateimitvordruck1,/ "anschreiben server");fetch(dateimitvordruck2,/"anschreiben server");fetch( dateimitvordruck3,/"anschreiben server");fetch(dateimitvordruck4,/ "anschreiben server");fetch(dateimitvordruck5,/"anschreiben server");fetch( dateimitvordruck6,/"anschreiben server");fetch(dateimitvordruck7,/ "anschreiben server");.vordruckeloeschen:forget(dateimitvordruck1,quiet); forget(dateimitvordruck2,quiet);forget(dateimitvordruck3,quiet);forget( dateimitvordruck4,quiet);forget(dateimitvordruck5,quiet);forget( dateimitvordruck6,quiet);forget(dateimitvordruck7,quiet);. ggf1malvordruck6undxmalvordruck7indruckdatei:inittupel(dnrvertretungen); putwert(fnrvparaphe,angegebeneparaphe);search(ixvpar,FALSE );IF dbstatus=0 AND wert(fnrvparaphe)=angegebeneparapheTHEN swvertretungenfuellen; briefalternative(dateimitvordruck6,hilfsdatei);hilfsdateiindruckdatei( hilfsdatei);weiteresaetzeda:=FALSE ;succ(ixvpar);zusatzzeilen:=1;WHILE dbstatus=0AND wert(fnrvparaphe)=angegebeneparapheREP weiteresaetzeda:=TRUE ; swvertretungenfuellen;briefalternative(dateimitvordruck7,hilfsdatei);succ( ixvpar);PER ;IF weiteresaetzedaTHEN hilfsdateiindruckdatei(hilfsdatei)FI ;FI ;END PROC druckdateibauen;PROC swvertretungenfuellen:TEXT VAR datum, datumaufber,lehrveranstg,lvaufber,zeitaufber;INT VAR zeit,tag,std; initialisieresonderwerte;datum:=wert(fnrvdatum);zeit:=intwert(fnrvtagstd); lehrveranstg:=wert(fnrvveranstaltung);datumaufber:=subtext(datum,1,2)+"."; datumaufberCAT subtext(datum,4,5)+".";datumaufberCAT subtext(datum,7,8);tag:= (zeit-1)DIV 12;std:=zeitMOD 12;IF tag=0THEN zeitaufber:="Mo "ELIF tag=1THEN zeitaufber:="Di "ELIF zeit=2THEN zeitaufber:="Mi "ELIF zeit=3THEN zeitaufber :="Do "ELIF zeit=4THEN zeitaufber:="Fr "ELIF zeit=5THEN zeitaufber:="Sa "FI ; zeitaufberCAT text(std,2);lvaufber:=subtext(lehrveranstg,1,2)+blank;lvaufber CAT subtext(lehrveranstg,3,4)+blank;lvaufberCAT subtext(lehrveranstg,5,8); setzesonderwert(swdatum,datumaufber);setzesonderwert(swzeit,zeitaufber); setzesonderwert(swart,wert(fnrvanrechnung));setzesonderwert(swlv,lvaufber); END PROC swvertretungenfuellen;PROC hilfsdateiindruckdatei(TEXT CONST hilfsdatei):FILE VAR f;INT VAR i;TEXT VAR zeile;f:=sequentialfile(input, hilfsdatei);zeilenhilfszahl:=lines(f);IF zeilenzahl+zeilenhilfszahl+ zusatzzeilen>=drucklaengeTHEN seitenwechsel;zeilenzahl:=0;FI ;FOR iFROM 1 UPTO zeilenhilfszahlREP getline(f,zeile);druckzeileschreiben(zeile)PER ; forget(hilfsdatei,quiet);zeilenzahlINCR zeilenhilfszahlEND PROC hilfsdateiindruckdatei;PROC sonderwertsjundhjsetzen(TEXT VAR sj,hj): setzesonderwert(schulj,subtext(sj,1,2)+trenner+subtext(sj,3,4)); setzesonderwert(halbj,hj);END PROC sonderwertsjundhjsetzen;PROC ggfvordruck21malundvordruck3xmalindruckdatei(BOOL VAR geplhj):LET aktjgst=528 ,aktfach=529,aktkurs=530,aktwochstd=531,hilfsdatei="hilfsdatei";TEXT VAR fach ,jgst:=blank,kennung;IF geplhjTHEN halbjahr:=geplanteshalbjahr;schuljahr:= geplantesschuljahr;ELSE halbjahr:=aktuelleshalbjahr;schuljahr:= aktuellesschuljahr;FI ;inittupel(dnrlehrveranstaltungen);putwert(fnrlvparaphe ,angegebeneparaphe);putwert(fnrlvsj,schuljahr);putwert(fnrlvhj,halbjahr); search(ixlvsjhjpar,FALSE );IF dbstatus=0AND (wert(fnrlvparaphe)= angegebeneparaphe)AND (wert(fnrlvhj)=halbjahr)AND (wert(fnrlvsj)=schuljahr) THEN briefalternative(dateimitvordruck2,hilfsdatei); sonderwertesetzenundinhilfsdateischreiben;hilfsdateiindruckdatei(hilfsdatei); FI ;.sonderwertesetzenundinhilfsdateischreiben:WHILE dbstatus=0AND (wert( fnrlvparaphe)=angegebeneparaphe)AND (wert(fnrlvhj)=halbjahr)AND (wert(fnrlvsj )=schuljahr)REP fach:=subtext(wert(fnrlvfachkennung),1,2);setzesonderwert( aktfach,fach);kennung:=subtext(wert(fnrlvfachkennung),3,6);setzesonderwert( aktkurs,kennung);jgstCAT wert(fnrlvjgst);IF length(jgst)>2THEN setzesonderwert(aktjgst,subtext(jgst,2,3));ELSE setzesonderwert(aktjgst,jgst) ;FI ;jgst:=blank;setzesonderwert(aktwochstd,wert(fnrlvwochenstd)); briefalternative(dateimitvordruck3,hilfsdatei);succ(ixlvsjhjpar);PER ;END PROC ggfvordruck21malundvordruck3xmalindruckdatei;PROC vordruck4indruckdatei( TEXT VAR sj,hj):LET hilfsdatei="hilfsdatei";TEXT VAR aufberwert:=niltext; BOOL VAR hilfsdateiangelegt:=FALSE ;TEXT VAR ueberschrift:="Schuljahr "; initialisieresonderwerte;aktswklassenlehrer:=580;aktswstellvertreter:=581; ueberschriftCAT subtext(sj,1,2)+"/"+subtext(sj,3,4);ueberschriftCAT ", "+hj+ ". Halbjahr";setzesonderwert(schulj,ueberschrift);inittupel( dnraktschuelergruppen);putwert(fnrsgrpsj,sj);putwert(fnrsgrphj,hj);search( dnraktschuelergruppen,FALSE );WHILE dbstatus=0AND wert(fnrsgrphj)=hjREP IF wert(fnrsgrplehrer)=angegebeneparapheAND aktswklassenlehrer<590THEN aufberwert:=wert(fnrsgrpjgst);aufberwertCAT wert(fnrsgrpkennung); setzesonderwert(aktswklassenlehrer,aufberwert);aktswklassenlehrerINCR 2; hilfsdateiangelegt:=TRUE ;ELSE IF wert(fnrsgrpstellvlehrer)=angegebeneparaphe AND aktswstellvertreter<591THEN aufberwert:=wert(fnrsgrpjgst);aufberwertCAT wert(fnrsgrpkennung);setzesonderwert(aktswstellvertreter,aufberwert); aktswstellvertreterINCR 2;hilfsdateiangelegt:=TRUE ;FI ;FI ;succ( dnraktschuelergruppen)PER ;IF hilfsdateiangelegtTHEN briefalternative( dateimitvordruck4,hilfsdatei);hilfsdateiindruckdatei(hilfsdatei);FI ;END PROC vordruck4indruckdatei;PROC vordruck5indruckdatei(TEXT VAR sj,hj):LET hilfsdatei="hilfsdatei";TEXT VAR zeitwuensche,ueberschrift:="Schuljahr "; initialisieresonderwerte;INT VAR aktswzeitwunsch:=531,position:=1,i; ueberschriftCAT subtext(sj,1,2)+"/"+subtext(sj,3,4);ueberschriftCAT ", "+hj+ ". Halbjahr";setzesonderwert(schulj,ueberschrift);inittupel(dnrzeitwuensche); putwert(fnrzwsj,sj);putwert(fnrzwhj,hj);putwert(fnrzwbezug,"P");putwert( fnrzwbezugsobjekt,angegebeneparaphe);search(dnrzeitwuensche,TRUE );IF dbstatus=0THEN zeitwuensche:=wert(fnrzwunbestimmtewuensche);setzesonderwert( ganztage,zeitwuenscheSUB 1);setzesonderwert(ganzgew,zeitwuenscheSUB 3); setzesonderwert(vormtage,zeitwuenscheSUB 4);setzesonderwert(vormgew, zeitwuenscheSUB 6);setzesonderwert(nachtage,zeitwuenscheSUB 7); setzesonderwert(nachgew,zeitwuenscheSUB 9);zeitwuensche:=wert( fnrzwbestimmtewuensche);FOR iFROM 1UPTO 66REP setzesonderwert(aktswzeitwunsch ,subtext(zeitwuensche,position,position+1));aktswzeitwunschINCR 1;position INCR 2PER ;briefalternative(dateimitvordruck5,hilfsdatei); hilfsdateiindruckdatei(hilfsdatei);FI ;END PROC vordruck5indruckdatei;END PACKET auskunftlehrer;