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/4.einzelstdpl.raeume | 86 ++++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 app/schulis/2.2.1/src/4.einzelstdpl.raeume (limited to 'app/schulis/2.2.1/src/4.einzelstdpl.raeume') diff --git a/app/schulis/2.2.1/src/4.einzelstdpl.raeume b/app/schulis/2.2.1/src/4.einzelstdpl.raeume new file mode 100644 index 0000000..aeb0db5 --- /dev/null +++ b/app/schulis/2.2.1/src/4.einzelstdpl.raeume @@ -0,0 +1,86 @@ +PACKET einzelstdplraeumeDEFINES einzelstdplraeumeeingang, +einzelstdplraeumestarten,einzelstdplraeumesonderwerte, +einzelstdplraeumemultistop,einzelstdplraeumedruckdateibauen:LET maske= +"ms einzelstdpl raeume eingang",fnr2raum=2,fnr3akthj=3,fnr4ausgabebs=4, +fnr5ausgabedr=5,blank=" ",null=0,niltext="", +fehlermeldnrkeinestundenplandatenvorhanden=366,fehlermeldnrungueltigerraum= +359,fehlermeldnrauswahlunsinnig=56,fehlermeldnrbestandraeumeleer=365, +meldnrbittewarten=69,swraum=511,swschuljahr=512,swhalbjahr=513,swraumlangtext +=514,swtagesstunde=520,maxzeichenimvordruck=79;TASK VAR vordruckserver;TEXT +CONST dateimitvordruck1:="vordruck1 einzelstdpl raeume",dateimitvordruck2:= +"vordruck2 einzelstdpl raeume",bestandnameraeume:="c02 raeume",strich:="-", +kreuz:="+",abschlusslinie:=76*strich+blank,normaletrennlinie:=3*strich+kreuz+ +5*(11*strich+kreuz)+11*strich+": ";TEXT VAR hj,sj,raum:="",l:="",r:="",p:=""; +BOOL VAR anschreibenaufbszeigen:=TRUE ,einzelanschreiben:=TRUE , +aktuelleshjgewaehlt:=TRUE ;INT VAR eingabestatus,i,x,fehlermeldnr;INT CONST +aktuellerindex:=dnrschluessel,maxwochstdn:=66,erstestd:=1,letztestd:=12;PROC +einzelstdplraeumeeingang:standardvproc(maske)END PROC +einzelstdplraeumeeingang;PROC einzelstdplraeumestarten:IF maskenwerteokTHEN +IF stundenplanokTHEN startenausfuehrenELSE fehlermeldnr:= +fehlermeldnrkeinestundenplandatenvorhanden;meldedenfehler;zurueckzumdialog; +FI ;ELSE meldedenfehler;zurueckzumdialogFI ;.meldedenfehler:standardmeldung( +fehlermeldnr,niltext).zurueckzumdialog:return(1).startenausfuehren: +vordruckserver:=/"anschreiben server";forget(dateimitvordruck1,quiet);forget( +dateimitvordruck2,quiet);fetch(dateimitvordruck1,vordruckserver);fetch( +dateimitvordruck2,vordruckserver);inittupel(dnrschluessel);putwert( +fnrschlsachgebiet,bestandnameraeume);putwert(fnrschlschluessel,raum); +standardmeldung(meldnrbittewarten,niltext);zusammengesetztesanschreiben( +aktuellerindex,anschreibenaufbszeigen,einzelanschreiben,BOOL PROC +einzelstdplraeumesonderwerte,BOOL PROC einzelstdplraeumemultistop,TEXT PROC +einzelstdplraeumedruckdateibauen);END PROC einzelstdplraeumestarten;BOOL +PROC stundenplanok:stundenplanhalbjahrsetzen(hj,sj); +stundenplanbasisundstundenplanholen(eingabestatus);eingabestatus=0OR +eingabestatus=8END PROC stundenplanok;BOOL PROC maskenwerteok:BOOL VAR ok; +standardpruefe(5,fnr4ausgabebs,fnr5ausgabedr,null,niltext,eingabestatus);IF +eingabestatus<>0THEN fehlermeldnr:=fehlermeldnrauswahlunsinnig;infeld( +fnr4ausgabebs);ok:=FALSE ELSE anschreibenaufbszeigen:=standardmaskenfeld( +fnr5ausgabedr)=niltext;einzelanschreiben:=standardmaskenfeld(fnr2raum)<> +niltext;aktuelleshjgewaehlt:=standardmaskenfeld(fnr3akthj)<>niltext;sj:= +schulkenndatum("Schuljahr");hj:=schulkenndatum("Schulhalbjahr");IF NOT ( +aktuelleshjgewaehlt)THEN geplanteshjundsjberechnen(hj,sj)FI ;IF +einzelanschreibenTHEN IF gueltigerraumTHEN ok:=TRUE ELSE fehlermeldnr:= +fehlermeldnrungueltigerraum;ok:=FALSE FI ;ELSE IF schluesselbestandleerTHEN +fehlermeldnr:=fehlermeldnrbestandraeumeleer;infeld(fnr2raum);ok:=FALSE ELSE +raum:=wert(fnrschlschluessel);ok:=TRUE FI ;FI ;FI ;okEND PROC maskenwerteok; +BOOL PROC gueltigerraum:raum:=standardmaskenfeld(fnr2raum);inittupel( +dnrschluessel);putwert(fnrschlsachgebiet,bestandnameraeume);putwert( +fnrschlschluessel,raum);search(dnrschluessel,TRUE );dbstatus=0END PROC +gueltigerraum;BOOL PROC schluesselbestandleer:inittupel(dnrschluessel); +putwert(fnrschlsachgebiet,bestandnameraeume);search(dnrschluessel);raum:=wert +(fnrschlschluessel);dbstatus<>0COR wert(fnrschlsachgebiet)<>bestandnameraeume +END PROC schluesselbestandleer;BOOL PROC einzelstdplraeumesonderwerte: +initialisieresonderwerte;adressat(raum);setzesonderwert(swschuljahr,subtext( +sj,1,2)+"/"+subtext(sj,3,4));setzesonderwert(swhalbjahr,hj);setzesonderwert( +swraum,wert(fnrschlschluessel));setzesonderwert(swraumlangtext,wert( +fnrschllangtext));TRUE END PROC einzelstdplraeumesonderwerte;BOOL PROC +einzelstdplraeumemultistop:BOOL VAR b;IF einzelanschreibenTHEN b:=wert( +fnrschlschluessel)=raumELSE b:=wert(fnrschlsachgebiet)=bestandnameraeumeFI ;b +ENDPROC einzelstdplraeumemultistop;TEXT PROC einzelstdplraeumedruckdateibauen +:LET stddruckdatei="liste.1",hilfsdatei="hilfsdatei";FILE VAR f;TEXT VAR +zeile:="",druckdatei:="Raumplan";forget(druckdatei,quiet);druckvorbereiten; +setzeanzahlderzeichenprozeile(maxzeichenimvordruck);raum:=wert( +fnrschlschluessel);datendeserstenvordrucksindruckdatei;FOR xFROM erstestd +UPTO letztestdREP datendeszweitenvordrucksindruckdateiPER ;rename( +stddruckdatei,druckdatei);f:=sequentialfile(modify,druckdatei);toline(f,1); +input(f);druckdatei.datendeserstenvordrucksindruckdatei:briefalternative( +dateimitvordruck1,hilfsdatei);zeilenweisehilfsdateiindruckdatei(hilfsdatei); +forget(hilfsdatei,quiet);.datendeszweitenvordrucksindruckdatei: +setzesonderwert(swtagesstunde,text(x,2)); +planeintraegeprowochenstdenlesenundsonderwertesetzen(x);briefalternative( +dateimitvordruck2,hilfsdatei);zeilenweisehilfsdateiindruckdatei(hilfsdatei); +IF x<>letztestdTHEN zeile:=normaletrennlinieELSE zeile:=abschlusslinieFI ; +druckzeileschreiben(zeile);forget(hilfsdatei,quiet);END PROC +einzelstdplraeumedruckdateibauen;PROC zeilenweisehilfsdateiindruckdatei(TEXT +CONST hilfsdatei):TEXT VAR zeile:=niltext;FILE VAR f;f:=sequentialfile(input, +hilfsdatei);FOR iFROM 1UPTO lines(f)REP getline(f,zeile);druckzeileschreiben( +zeile)PER ;END PROC zeilenweisehilfsdateiindruckdatei;PROC +planeintraegeprowochenstdenlesenundsonderwertesetzen(INT CONST std):INT VAR +wochenstd:=std,sonderwert:=521;TEXT VAR ausgabe;WHILE wochenstd<=maxwochstdn +REP planeintraglesen(wochenstd,"R",raum,l,r,p);IF r<>""THEN ausgabe:=subtext( +l,1,2);ausgabeCAT blank;ausgabeCAT subtext(l,3,4);ausgabeCAT blank;ausgabe +CAT subtext(l,5,8);setzesonderwert(sonderwert,ausgabe);setzesonderwert( +sonderwert+6,p);ELSE setzesonderwert(sonderwert,blank);setzesonderwert( +sonderwert+6,blank);FI ;ausgabe:=niltext;sonderwertINCR 1;wochenstdINCR 12; +PER ;END PROC planeintraegeprowochenstdenlesenundsonderwertesetzen;END +PACKET einzelstdplraeume; + -- cgit v1.2.3