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 --- .../src/4.stand der stundenplanung analysieren | 98 ++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 app/schulis/2.2.1/src/4.stand der stundenplanung analysieren (limited to 'app/schulis/2.2.1/src/4.stand der stundenplanung analysieren') diff --git a/app/schulis/2.2.1/src/4.stand der stundenplanung analysieren b/app/schulis/2.2.1/src/4.stand der stundenplanung analysieren new file mode 100644 index 0000000..c505d27 --- /dev/null +++ b/app/schulis/2.2.1/src/4.stand der stundenplanung analysieren @@ -0,0 +1,98 @@ +PACKET standderstundenplanunganalysierenDEFINES +stundenplanstandanalyseausfuehren:LET feldakthj=2,dateiname="Fehlerprotokoll" +,schulname="Schulname",schulort="Schulort",schuljahr="Schuljahr",halbjahr= +"Schulhalbjahr",kennunglv="L",kennungkopplg="K",ausgpar="#",anzkopfzeilen=10, +laengelv=8,laengekopplg=8,laengefachkenn=6,leererraum=" ",leerzeile=" ", +ueberschrift1="Fehlerprotokoll zum Stand der Stundenplanung",unterstrich1= +"-----------------------------------------------------",ausgkopp=" " +,ausgkopplv=" ",ueberschrift2= +"Kopplung Lehrveranst. Wstd. Anmerkung",ueberschrift3= +" soll/ist",unterstrich2= +"---------+------------+-----------+--------------------------------------", +keinefehler="Keine Fehler aufgetreten (alle Kopplungen korrekt verplant)!", +zuvielverpl=" Std. zuviel verplant",raumfehlt="Raum fehlt für ",zuverplanen= +" Std. noch zu verplanen",keinekopplg="Kopplung nicht erhalten (", +meldungserverfehler=376,meldungkeinstdplan=366,meldungkeinesugruppen=334, +meldungzuvielesugruppen=356,meldungkeinelv=326,meldungzuvielelv=358, +meldungbasisinkon=378,meldungwarten=69,meldungstdplauswvorber=384, +meldungkeinehjdaten=382,meldungbearbeitetwird=352;FILE VAR datei;TEXT VAR +aktkopplg:="",aktlv:="",sj,hj,ausgzeile,ausgpostfix;BOOL VAR +kopplungausgegeben:=FALSE ,lvausgegeben:=FALSE ;INT VAR maxwstd:=0,verplstden +:=0,aktwstd:=0,anzverplstden:=0,fstat:=0,anzleereraumzuw:=0,jgstderlv;PROC +meldungausgeben(INT VAR fstat):IF fstat=2THEN standardmeldung( +meldungserverfehler,"");ELIF fstat=3THEN standardmeldung(meldungkeinstdplan, +"");ELIF fstat=4THEN standardmeldung(meldungkeinesugruppen,"");ELIF fstat=5 +THEN standardmeldung(meldungzuvielesugruppen,"")ELIF fstat=6THEN +standardmeldung(meldungkeinelv,"")ELIF fstat=7THEN standardmeldung( +meldungzuvielelv,"")ELIF fstat=9THEN standardmeldung(meldungbasisinkon,""); +FI ;return(1)END PROC meldungausgeben;PROC stundenplanstandanalyseausfuehren: +standardmeldung(meldungwarten,"");bestimmehalbjahr;bereiteprotokollvor; +setzepufferwerte;holeunduntersuchekopplungen;IF lines(datei)=anzkopfzeilen +THEN putline(datei,keinefehler)FI ;zeigedatei(dateiname,"vr"). +bereiteprotokollvor:forget(dateiname,quiet);datei:=sequentialfile(output, +dateiname);putline(datei,schulkenndatum(schulname));putline(datei,text( +schulkenndatum(schulort),65)+date);putline(datei,leerzeile);putline(datei, +ueberschrift1+" "+hj+". "+text(sj,2)+"/"+subtext(sj,3));putline(datei, +unterstrich1);putline(datei,leerzeile);putline(datei,ueberschrift2);putline( +datei,ueberschrift3);putline(datei,unterstrich2);putline(datei,leerzeile). +bestimmehalbjahr:sj:=schulkenndatum(schuljahr);hj:=schulkenndatum(halbjahr); +IF standardmaskenfeld(feldakthj)=""THEN geplanteshjundsjberechnen(hj,sj);FI . +setzepufferwerte:inittupel(dnrlehrveranstaltungen). +holeunduntersuchekopplungen:IF keinehjdatenTHEN fehlermeldungkeinelvFI ; +standardmeldung(meldungstdplauswvorber,"");stundenplanhalbjahrsetzen(hj,sj); +stundenplanbasisundstundenplanholen(fstat);IF fstat=0COR fstat=8THEN +statleseschleife(ixlvsjhjkopp,sj,hj,fnrlvsj,fnrlvhj,PROC +kopplungenuntersuchen)ELSE meldungausgeben(fstat);LEAVE +stundenplanstandanalyseausfuehren;FI .keinehjdaten:records( +dnrlehrveranstaltungen)=0.0.fehlermeldungkeinelv:standardmeldung( +meldungkeinehjdaten,"");return(1).END PROC stundenplanstandanalyseausfuehren; +PROC kopplungenuntersuchen(BOOL VAR b):IF wert(fnrlvsj)<>sjCOR wert(fnrlvhj) +<>hjCOR dbstatus<>0THEN b:=TRUE ELSE IF aktkopplg<>wert(fnrlvkopplung)THEN +IF nichterstersatzCAND mehrerelvTHEN ueberpruefeinhaltungderkopplungFI ; +aktkopplg:=wert(fnrlvkopplung);standardmeldung(meldungbearbeitetwird, +aktkopplg+ausgpar);maxwstd:=0;IF kopplungausgegebenTHEN putline(datei, +leerzeile)FI ;kopplungausgegeben:=FALSE ;FI ;lvausgegeben:=FALSE ;jgstderlv:= +intwert(fnrlvjgst);IF jgstderlv=0THEN aktlv:="00"+text(wert(fnrlvfachkennung) +,laengefachkenn)ELSE aktlv:=jgstaufber(wert(fnrlvjgst))+text(wert( +fnrlvfachkennung),laengefachkenn)FI ;aktwstd:=intwert(fnrlvwochenstd);IF +maxwstd"".mehrerelv:length(allelvmit(kennungkopplg, +aktkopplg))>laengelv.ueberpruefanzstdenundleereraumangabe:anzleereraumzuw:=0; +verplstden:=anzahlverplstden(kennunglv,aktlv);IF verplstdenaktwstdTHEN fehlerzuvielstdenFI ;IF +anzleereraumzuw>0THEN ausgzeile:="";ausgpostfix:=raumfehlt+text( +anzleereraumzuw)+" Std.";IF kopplungausgegebenTHEN IF lvausgegebenTHEN +ausgzeileCAT ausgkopplv;lvausgegeben:=TRUE ELSE ausgzeileCAT ausgkopp; +ausgzeileCAT aktlv;ausgzeileCAT text(aktwstd,8);ausgzeileCAT text(verplstden, +5);ausgzeileCAT " ";FI ;ELSE ausgzeileCAT text(aktkopplg,laengekopplg+2); +ausgzeileCAT aktlv;ausgzeileCAT text(aktwstd,8);ausgzeileCAT text(verplstden, +5);ausgzeileCAT " ";kopplungausgegeben:=TRUE ;lvausgegeben:=TRUE FI ; +ausgzeileCAT ausgpostfix;putline(datei,ausgzeile)FI .fehlerzuwenigstden: +ausgzeile:="";ausgpostfix:=aktlv;ausgpostfixCAT text(aktwstd,8);ausgpostfix +CAT text(verplstden,5);ausgpostfixCAT " ";ausgpostfixCAT text(aktwstd- +verplstden);ausgpostfixCAT zuverplanen;IF kopplungausgegebenTHEN ausgzeile:= +ausgkopp;ELSE ausgzeile:=text(aktkopplg,laengekopplg+2);kopplungausgegeben:= +TRUE FI ;ausgzeileCAT ausgpostfix;putline(datei,ausgzeile);lvausgegeben:= +TRUE .fehlerzuvielstden:ausgzeile:="";ausgpostfix:=aktlv;ausgpostfixCAT text( +aktwstd,8);ausgpostfixCAT text(verplstden,5);ausgpostfixCAT " "; +ausgpostfixCAT text(verplstden-aktwstd);ausgpostfixCAT zuvielverpl;IF +kopplungausgegebenTHEN ausgzeile:=ausgkopp;ELSE ausgzeile:=text(aktkopplg, +laengekopplg+2);kopplungausgegeben:=TRUE FI ;ausgzeileCAT ausgpostfix;putline +(datei,ausgzeile);lvausgegeben:=TRUE .ueberpruefeinhaltungderkopplung: +anzverplstden:=anzahlverplstden(kennungkopplg,aktkopplg);IF anzverplstden> +maxwstdTHEN ausgpostfix:=keinekopplg;ausgpostfixCAT text(anzverplstden); +ausgpostfixCAT " Wstd.)";IF kopplungausgegebenTHEN IF lvausgegebenTHEN +ausgzeile:=ausgkopplv;ELSE ausgzeile:=ausgkopp;ausgzeileCAT aktlv;ausgzeile +CAT text(aktwstd,8);ausgzeileCAT text(verplstden,5);ausgzeileCAT " "; +lvausgegeben:=TRUE FI ;ELSE ausgzeile:=text(aktkopplg,laengekopplg+2); +ausgzeileCAT aktlv;ausgzeileCAT text(aktwstd,8);ausgzeileCAT text(verplstden, +5);kopplungausgegeben:=TRUE FI ;ausgzeileCAT ausgpostfix;putline(datei, +ausgzeile)FI .END PROC kopplungenuntersuchen;INT PROC anzahlverplstden(TEXT +CONST kennung,kennungstext):TEXT VAR stundenplan:=allezeitenvon(kennung, +kennungstext),plv,praum,ppar;INT VAR einspos:=1,anzeinsen:=0;WHILE einspos<>0 +REP einspos:=pos(stundenplan,"1",einspos);IF einspos<>0THEN anzeinsenINCR 1; +IF kennung=kennunglvTHEN ueberpruefleererraumFI ;einsposINCR 1FI PER ; +anzeinsen.ueberpruefleererraum:planeintraglesen(einspos,kennunglv, +kennungstext,plv,praum,ppar);IF praum=leererraumTHEN anzleereraumzuwINCR 1FI +.END PROC anzahlverplstden;END PACKET standderstundenplanunganalysieren; + -- cgit v1.2.3