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

Raw file
Back to index

PACKET listederzeitrasterdatenDEFINES 
zeitrasterlisteerstellenunddruckenggfvorherzeigen:LET fnrausggeplanteshj=2,
fnrausgaktuelleshj=3,fnrausgdrucker=4,fnrausgbild=5;LET schluesselschuljahr=
"Schuljahr",schluesselschulhalbjahr="Schulhalbjahr",
anzahldatensaetzeprozeitraster=66;LET zusätzlicherlaubtetasten="vr";LET 
meldunglistewirdaufgebaut=7,meldunglistewirdausgedruckt=58,meldungbittewarten
=69,meldungkeinedatenvorhanden=68;LET dateinamezumzeigen=
"Liste der Zeitrasterdaten",ueberschrift1fuerdruckdatei=
"Liste der Zeitrasterdaten",ueberschrift2fuerdruckdatei=
"-------------------------",blankszumauffuellen="    ",
textanfangfuerschulhalbjahr="für Schuljahr 19",trennerfuerschuljahr="/",
textmittefuerschulhalbjahr=", ",textendefuerschulhalbjahr=". Halbjahr",
ueberschriftdererstentabelle="Uhrzeiten:",unterschriftdererstentabelle=
"----------",zeilederwochentage=
"          Mo     Di     Mi     Do     Fr     Sa",textvorbeginnzeiten=
".  von",textvorendezeiten="     bis",trennerdererstentabelle="  ",
stdundmintrenner=":",laengederstundenzeit=2,stellenderstundennummer=2,
zeilenzahldererstentabelle=45,ueberschriftderzweitentabelle=
"Kennzeichnung der Tagesteile:",unterschriftderzweitentabelle=
"-----------------------------",zeilederstunden=
"     1.  2.  3.  4.  5.  6.  7.  8.  9. 10. 11. 12.",textmontag="Mo",
textdienstag="Di",textmittwoch="Mi",textdonnerstag="Do",textfreitag="Fr",
textsamstag="Sa",trennerderzweitentabelle="   ",stundenamsamstag=6,
stundenprowochentag=12,mobissa=6,mobisfr=5,poskennungtagesteil=1,
anfposbeginnzeit=2,endeposbeginnzeit=5,anfposendezeit=6,endeposendezeit=9,
gesamtetextlaenge=9,stellenfuerkennungtagesteil=1,stellenfuerzeit=4;LET 
niltext="",blank=" ",null=0,eins=1;BOOL VAR erstaufbildschirm:=FALSE ;TEXT 
VAR schuljahr:=niltext,halbjahr:=niltext;INT VAR fehlerstatus;ROW 
anzahldatensaetzeprozeitrasterTEXT VAR alteszeitraster;INT VAR aktindex;PROC 
zeitrasterlisteerstellenunddruckenggfvorherzeigen(INT CONST nr):SELECT nrOF 
CASE 1:zeitrasterlisteerstellenCASE 2:zeitrasterlistedruckenENDSELECT .END 
PROC zeitrasterlisteerstellenunddruckenggfvorherzeigen;PROC 
zeitrasterlisteerstellen:INT VAR i;prüfeobrichtigangekreuztist;IF 
fehlerstatus<>nullTHEN infeld(fehlerstatus);return(1);LEAVE 
zeitrasterlisteerstellenFI ;erstaufbildschirm:=standardmaskenfeld(fnrausgbild
)<>niltext;IF erstaufbildschirmTHEN standardmeldung(meldunglistewirdaufgebaut
,niltext)ELSE standardmeldung(meldungbittewarten,niltext)FI ;
berechnebearbeitungsschuljahrundhalbjahr;fuelledenpuffermitdemzeitraster;IF 
aktindex=nullTHEN standardmeldung(meldungkeinedatenvorhanden,niltext);return(
1);LEAVE zeitrasterlisteerstellenFI ;fuegeerstetabelleindateian;
fuegezweitetabelleindateian;IF erstaufbildschirmTHEN zeigedatei(
dateinamezumzeigen,zusätzlicherlaubtetasten)ELSE standardmeldung(
meldunglistewirdausgedruckt,niltext);zeitrasterlistedruckenFI .
prüfeobrichtigangekreuztist:standardpruefe(5,fnrausggeplanteshj,
fnrausgaktuelleshj,null,niltext,fehlerstatus);IF fehlerstatus=nullTHEN 
standardpruefe(5,fnrausgdrucker,fnrausgbild,null,niltext,fehlerstatus);FI .
fuelledenpuffermitdemzeitraster:aktindex:=null;inittupel(dnrzeitraster);
statleseschleife(dnrzeitraster,schuljahr,halbjahr,fnrzrsj,fnrzrhj,PROC 
fuellenurpuffer);FOR iFROM aktindex+einsUPTO anzahldatensaetzeprozeitraster
REP alteszeitraster(i):=gesamtetextlaenge*blankPER .
berechnebearbeitungsschuljahrundhalbjahr:schuljahr:=schulkenndatum(
schluesselschuljahr);halbjahr:=schulkenndatum(schluesselschulhalbjahr);IF 
standardmaskenfeld(fnrausgaktuelleshj)=niltextTHEN geplanteshjundsjberechnen(
halbjahr,schuljahr)FI .END PROC zeitrasterlisteerstellen;PROC 
zeitrasterlistedrucken:INT VAR i;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));FOR iFROM einsUPTO zeilenzahldererstentabelleREP getline(f1
,t);druckzeileschreiben(t)PER ;seitenwechsel;druckkopfschreiben;WHILE NOT eof
(f1)REP getline(f1,t);druckzeileschreiben(t)PER ;drucknachbereiten;forget(
dateinamezumzeigen,quiet);IF erstaufbildschirmTHEN enter(2)ELSE enter(1)FI 
END PROC zeitrasterlistedrucken;PROC fuegeerstetabelleindateian:INT VAR i,j,k
;TEXT VAR t1,t2,t3;FILE VAR 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,ueberschriftdererstentabelle+
blank);putline(f,unterschriftdererstentabelle+blank);putline(f,blank);putline
(f,zeilederwochentage+blank);FOR iFROM einsUPTO stundenprowochentagREP 
putline(f,blank);t1:=text(i,stellenderstundennummer)+textvorbeginnzeiten;t2:=
textvorendezeiten;IF i>stundenamsamstagTHEN k:=mobisfrELSE k:=mobissaFI ;FOR 
jFROM einsUPTO kREP t1CAT trennerdererstentabelle;t2CAT 
trennerdererstentabelle;t3:=subtext(alteszeitraster(i+(j-eins)*
stundenprowochentag),anfposbeginnzeit,endeposbeginnzeit);t1CAT text(t3,
laengederstundenzeit)+stdundmintrenner+subtext(t3,laengederstundenzeit+1);t3
:=subtext(alteszeitraster(i+(j-eins)*stundenprowochentag),anfposendezeit,
endeposendezeit);t2CAT text(t3,laengederstundenzeit)+stdundmintrenner+subtext
(t3,laengederstundenzeit+1);PER ;putline(f,t1+blank);putline(f,t2+blank);PER 
;putline(f,blank);putline(f,blank);putline(f,blank)END PROC 
fuegeerstetabelleindateian;PROC fuegezweitetabelleindateian:INT VAR i,j,k;
TEXT VAR t1;FILE VAR f:=sequentialfile(output,dateinamezumzeigen);putline(f,
blank);putline(f,ueberschriftderzweitentabelle+blank);putline(f,
unterschriftderzweitentabelle+blank);putline(f,blank);putline(f,
zeilederstunden+blank);putline(f,blank);FOR iFROM einsUPTO mobissaREP SELECT 
iOF CASE 1:t1:=textmontagCASE 2:t1:=textdienstagCASE 3:t1:=textmittwochCASE 4
:t1:=textdonnerstagCASE 5:t1:=textfreitagCASE 6:t1:=textsamstagEND SELECT ;
IF i=mobissaTHEN k:=stundenamsamstagELSE k:=stundenprowochentagFI ;FOR jFROM 
einsUPTO kREP t1CAT trennerderzweitentabelle+text(alteszeitraster((i-eins)*
stundenprowochentag+j),poskennungtagesteil);PER ;putline(f,t1+blank);PER END 
PROC fuegezweitetabelleindateian;PROC fuellenurpuffer(BOOL VAR b):TEXT VAR t;
IF wert(fnrzrsj)>schuljahrCOR wert(fnrzrhj)>halbjahrCOR dbstatus<>okTHEN b:=
TRUE ELSE aktindexINCR eins;t:=blankszumauffuellen+wert(fnrzrkennungteil);
alteszeitraster(aktindex):=subtext(t,length(t)+eins-
stellenfuerkennungtagesteil);t:=blankszumauffuellen+wert(fnrzrbeginnuhr);
alteszeitraster(aktindex)CAT subtext(t,length(t)+eins-stellenfuerzeit);t:=
blankszumauffuellen+wert(fnrzrendeuhr);alteszeitraster(aktindex)CAT subtext(t
,length(t)+eins-stellenfuerzeit)FI END PROC fuellenurpuffer;END PACKET 
listederzeitrasterdaten