app/schulis/2.2.1/src/0.liste der aufsichtszeiten

Raw file
Back to index

PACKET listederaufsichtszeitenDEFINES 
aufsichtszeitenlisteerstellenunddruckenggfvorherzeigen:LET fnrausggeplanteshj
=2,fnrausgaktuelleshj=3,fnrausgdrucker=4,fnrausgbild=5;LET 
schluesselschuljahr="Schuljahr",schluesselschulhalbjahr="Schulhalbjahr";LET 
zusätzlicherlaubtetasten="vr";LET meldunglistewirdaufgebaut=7,
meldunglistewirdausgedruckt=58,meldungbittewarten=69,
meldungkeinedatenvorhanden=68;LET dateinamezumzeigen=
"Liste der Aufsichtszeiten",ueberschrift1fuerdruckdatei=
"Liste der Aufsichtszeiten",ueberschrift2fuerdruckdatei=
"-------------------------",textanfangfuerschulhalbjahr="für Schuljahr ",
trennerfuerschuljahr="/",textmittefuerschulhalbjahr=", ",
textendefuerschulhalbjahr=". Halbjahr",ueberschrift1dertabelle=
" Tag Nr.  Bezeichnung            Stunde            Uhrzeit",
ueberschrift2dertabelle=
"                                 vorher nachher    von      bis",
trennstrichdertabelle=
"--------+----------------------+-----------------+-----------------",
stelligkeitdestages=100,füllervorbezeichnung=".  ",bezeichnungslänge=20,
füllervorstunde="   ",stundenprowochentag=12,leerestunde="  ",füllerinstunde=
".    ",füllervoruhrzeit=".        ",blankszumauffüllen="    ",stellenfürzeit
=4,füllerinuhrzeit="    ",stdundmintrenner=":",laengederstundenzeit=2,
blanksvorwochentag="  ",leererwochentag="     ",textmontag="Mo",textdienstag=
"Di",textmittwoch="Mi",textdonnerstag="Do",textfreitag="Fr",textsamstag="Sa",
nummerfürsa=6;LET niltext="",blank=" ";BOOL VAR erstaufbildschirm:=FALSE ;
TEXT VAR schuljahr:=niltext,halbjahr:=niltext;INT VAR fehlerstatus;FILE VAR f
;INT VAR akttag;PROC aufsichtszeitenlisteerstellenunddruckenggfvorherzeigen(
INT CONST nr):SELECT nrOF CASE 1:aufsichtszeitenlisteerstellenCASE 2:
aufsichtszeitenlistedruckenENDSELECT .END PROC 
aufsichtszeitenlisteerstellenunddruckenggfvorherzeigen;PROC 
aufsichtszeitenlisteerstellen:INT VAR i;prüfeobrichtigangekreuztist;IF 
fehlerstatus<>0THEN infeld(fehlerstatus);return(1);LEAVE 
aufsichtszeitenlisteerstellenFI ;erstaufbildschirm:=standardmaskenfeld(
fnrausgbild)<>niltext;IF erstaufbildschirmTHEN standardmeldung(
meldunglistewirdaufgebaut,niltext)ELSE standardmeldung(meldungbittewarten,
niltext)FI ;berechnebearbeitungsschuljahrundhalbjahr;
fuellediedateimitdenaufsichtszeiten;IF akttag=0THEN standardmeldung(
meldungkeinedatenvorhanden,niltext);forget(dateinamezumzeigen,quiet);return(1
);LEAVE aufsichtszeitenlisteerstellenFI ;IF erstaufbildschirmTHEN zeigedatei(
dateinamezumzeigen,zusätzlicherlaubtetasten)ELSE standardmeldung(
meldunglistewirdausgedruckt,niltext);aufsichtszeitenlistedruckenFI .
prüfeobrichtigangekreuztist:standardpruefe(5,fnrausggeplanteshj,
fnrausgaktuelleshj,0,niltext,fehlerstatus);IF fehlerstatus=0THEN 
standardpruefe(5,fnrausgdrucker,fnrausgbild,0,niltext,fehlerstatus);FI .
fuellediedateimitdenaufsichtszeiten:f:=sequentialfile(output,
dateinamezumzeigen);putline(f,blank);putline(f,zentriert(
textanfangfuerschulhalbjahr+text(schuljahr,2)+trennerfuerschuljahr+subtext(
schuljahr,3)+textmittefuerschulhalbjahr+halbjahr+textendefuerschulhalbjahr,
bildbreite));putline(f,blank);putline(f,blank);putline(f,
ueberschrift1dertabelle+blank);putline(f,ueberschrift2dertabelle+blank);
putline(f,trennstrichdertabelle+blank);akttag:=0;inittupel(dnraufsichtszeiten
);statleseschleife(dnraufsichtszeiten,schuljahr,halbjahr,fnrazsj,fnrazhj,
PROC fuellediedatei);FOR iFROM akttag+1UPTO nummerfürsaREP putline(f,blank);
putline(f,wochentag(i));PER ;.berechnebearbeitungsschuljahrundhalbjahr:
schuljahr:=schulkenndatum(schluesselschuljahr);halbjahr:=schulkenndatum(
schluesselschulhalbjahr);IF standardmaskenfeld(fnrausgaktuelleshj)=niltext
THEN geplanteshjundsjberechnen(halbjahr,schuljahr)FI .END PROC 
aufsichtszeitenlisteerstellen;PROC aufsichtszeitenlistedrucken:INT VAR 
zeilenzähler;TEXT VAR t;FILE VAR f1:=sequentialfile(input,dateinamezumzeigen)
;initdruckkopf(zentriert(ueberschrift1fuerdruckdatei,druckbreite),zentriert(
ueberschrift2fuerdruckdatei,druckbreite));setzemitseitennummern(TRUE );
druckvorbereiten;druckkopfschreiben;getline(f1,t);druckzeileschreiben(t);
getline(f1,t);druckzeileschreiben(zentriert(compress(t),druckbreite));
zeilenzähler:=drucklaenge(2)-2;WHILE NOT eof(f1)REP IF zeilenzähler=0THEN 
seitenwechsel;druckkopfschreiben;druckzeileschreiben(ueberschrift1dertabelle)
;druckzeileschreiben(ueberschrift2dertabelle);druckzeileschreiben(
trennstrichdertabelle);zeilenzähler:=drucklaenge(2)-3;FI ;getline(f1,t);
druckzeileschreiben(t);zeilenzählerDECR 1;PER ;drucknachbereiten;forget(
dateinamezumzeigen,quiet);IF erstaufbildschirmTHEN enter(2)ELSE enter(1)FI 
END PROC aufsichtszeitenlistedrucken;TEXT PROC wochentag(INT CONST tag):TEXT 
VAR t;SELECT tagOF CASE 1:t:=blanksvorwochentag+textmontag+blankCASE 2:t:=
blanksvorwochentag+textdienstag+blankCASE 3:t:=blanksvorwochentag+
textmittwoch+blankCASE 4:t:=blanksvorwochentag+textdonnerstag+blankCASE 5:t:=
blanksvorwochentag+textfreitag+blankCASE 6:t:=blanksvorwochentag+textsamstag+
blankEND SELECT ;tEND PROC wochentag;PROC fuellediedatei(BOOL VAR b):INT VAR 
i,neuertag;TEXT VAR t,t2;IF wert(fnrazsj)>schuljahrCOR wert(fnrazhj)>halbjahr
COR dbstatus<>okTHEN b:=TRUE ELSE neuertag:=intwert(fnrazaufsichtszeit)DIV 
stelligkeitdestages;IF neuertag>akttagTHEN putline(f,blank);FOR iFROM akttag+
1UPTO neuertag-1REP putline(f,wochentag(i));putline(f,blank);PER ;t:=
wochentag(neuertag);akttag:=neuertag;ELSE t:=leererwochentagFI ;tCAT text(
intwert(fnrazaufsichtszeit)MOD stelligkeitdestages,2);tCAT 
füllervorbezeichnung;tCAT text(wert(fnrazbezeichnung),bezeichnungslänge);t
CAT füllervorstunde;IF intwert(fnraztagstdvor)=0THEN tCAT leerestundeELSE i:=
(intwert(fnraztagstdvor)-1)MOD stundenprowochentag+1;tCAT text(i,2);FI ;tCAT 
füllerinstunde;IF intwert(fnraztagstdnach)=0THEN tCAT leerestundeELSE i:=(
intwert(fnraztagstdnach)-1)MOD stundenprowochentag+1;tCAT text(i,2);FI ;tCAT 
füllervoruhrzeit;t2:=blankszumauffüllen+wert(fnrazbeginnuhr);t2:=subtext(t2,
length(t2)+1-stellenfürzeit);tCAT text(t2,laengederstundenzeit);tCAT 
stdundmintrenner;tCAT subtext(t2,laengederstundenzeit+1);tCAT füllerinuhrzeit
;t2:=blankszumauffüllen+wert(fnrazendeuhr);t2:=subtext(t2,length(t2)+1-
stellenfürzeit);tCAT text(t2,laengederstundenzeit);tCAT stdundmintrenner;t
CAT subtext(t2,laengederstundenzeit+1);tCAT blank;putline(f,t);FI END PROC 
fuellediedatei;END PACKET listederaufsichtszeiten