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 --- .../2.2.1/src/2.stand der kursbildung analysieren | 132 +++++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 app/schulis/2.2.1/src/2.stand der kursbildung analysieren (limited to 'app/schulis/2.2.1/src/2.stand der kursbildung analysieren') diff --git a/app/schulis/2.2.1/src/2.stand der kursbildung analysieren b/app/schulis/2.2.1/src/2.stand der kursbildung analysieren new file mode 100644 index 0000000..f199978 --- /dev/null +++ b/app/schulis/2.2.1/src/2.stand der kursbildung analysieren @@ -0,0 +1,132 @@ +PACKET standderkursbildunganalysierenDEFINES +standderkursbildunganalysierenvorbereiten, +standderkursbildunganalysierenstarten,standderkursbildunganalysierendrucken: +LET maskeeingang="ms stand der kursbildung analysieren";LET fnrgewjgst=2, +fnrhalbjahr=3,fnraktjgst=4,fnrneuanjgst=5,fnralleschueler=6;FILE VAR prot; +LET protname="Zuordnung von Schülern zu Kursen";LET schulhalbjahr= +"Schulhalbjahr",schulname="Schulname",schulort="Schulort";LET jgst10=10, +jgst11=11,jgst13=13,hj1=1,hj2=2;LET meldnrdatenwerdengeprueft=57, +meldnrbittewarten=69,meldnrbearbeitetwird=102,meldnrbitteangabeergaenzen=129, +meldnrfalschejgstfolge=410,meldnrfalschebezugsjgst=411,meldnrkurswahlfehler= +416;LET feldanzmaskeeingang=6;ROW feldanzmaskeeingangTEXT VAR feldbs1;INT +VAR letztecursorfnr:=fnrgewjgst,pruefstatus,kurswahlstatus;TEXT VAR +aktuelleshalbjahr:="",aktjgst,gewjgst,gewhalbjahr,neuanjgst,gewschuljahr; +BOOL VAR alleschueler,fehlerinschuelerwahl;TEXT VAR gewschueler;LET +nuraktuelleschueler="O",nurneuangemeldete="N";INT VAR ischueler;TEXT VAR +wahldaten,schuelername,anfangsbuchstabe,kurs,gueltigekurse;INT VAR ikurs;LET +maxkurse=13;ROW maxkurseSTRUCT (TEXT eintrag,TEXT pb1,TEXT pb2)VAR +kurshinweis;TEXT VAR planbloecke,belegtebloecke,pbnr,pbkennung,pruefblock; +LET pbkennunga="a",pbkennungb="b",pbleer=" ";INT VAR poskurs;LET laengekurs +=6,laengeschuelerkurs=15,laengekursangaben=10,laengeplanblock=3;LET trenner= +"�",schraegstrich="/",doppelpunkt=":",kennzhell="#";LET kennungname="N", +kennungkurse="K",kennungplanblock="P";TEXT VAR auszeile,fachzeile,kurszeile, +fehlerzeile;LET ueberschrift="Zuordnung von Schülern zu Kursen",untertitel1= +"Jgst. ",erklaerung1="(Fehlende Zuordnungen sind mit ""_"" hervorgehoben,", +erklaerung2="Überschneidungen in Planblöcken mit ""*"",",erklaerung3= +"ungültige Kursbezeichnungen mit ""$"" markiert.)",blank=" ",zeilenbeginn= +" ",leereintrag=" :",ungueltigerkurs="$$$$:",fehlenderkurs="____:", +gleichzeitigerkurs="****:";initfelderdeseingangsbildschirms;PROC +standderkursbildunganalysierenvorbereiten:standardstartproc(maskeeingang); +wertedeseingangsbildschirmsholen;infeld(fnrgewjgst);standardfelderausgeben; +infeld(letztecursorfnr);standardnprocEND PROC +standderkursbildunganalysierenvorbereiten;PROC +standderkursbildunganalysierenstarten:eingangsbehandlung;IF pruefstatus>0 +THEN infeld(pruefstatus);return(1)ELSE wertedeseingangsbildschirmsmerken; +standardmeldung(meldnrbittewarten,"");kurswahlinitialisieren(aktjgst,gewjgst, +gewhalbjahr,gewschueler,gewschuljahr);kurswahlbasisholen(kurswahlstatus);IF +kurswahlstatus<>0THEN kurswahlfehlerbehandeln;return(1)ELSE +protokollvorbereiten;kurszuordnungenanalysieren;zeigedatei(protname,"")FI FI +.protokollvorbereiten:forget(protname,quiet);prot:=sequentialfile(output, +protname);putline(prot,schulkenndatum(schulname));auszeile:=text( +schulkenndatum(schulort),60);auszeileCAT date;putline(prot,auszeile);line( +prot,2);putline(prot,20*blank+ueberschrift);auszeile:=22*blank;auszeileCAT +untertitel1;auszeileCAT aktjgst;auszeileCAT " für ";auszeileCAT gewjgst; +auszeileCAT ".";auszeileCAT gewhalbjahr;auszeileCAT blank;auszeileCAT +aufberschuljahr;putline(prot,auszeile);line(prot,2);auszeile:=erklaerung1; +putline(prot,auszeile);auszeile:=erklaerung2;putline(prot,auszeile);auszeile +:=erklaerung3;putline(prot,auszeile).END PROC +standderkursbildunganalysierenstarten;PROC kurswahlfehlerbehandeln: +standardmeldung(meldnrkurswahlfehler,"");pause(10)END PROC +kurswahlfehlerbehandeln;TEXT PROC aufberschuljahr:TEXT VAR aufbersj:=subtext( +gewschuljahr,1,2);aufbersjCAT schraegstrich;aufbersjCAT subtext(gewschuljahr, +3,4);aufbersjEND PROC aufberschuljahr;PROC kurszuordnungenanalysieren: +gueltigekurse:=allekurse;anfangsbuchstabe:="";FOR ischuelerFROM +ersterschuelerUPTO letzterschuelerREP schuelerwahluntersuchenPER . +schuelerwahluntersuchen:fachzeile:=zeilenbeginn;kurszeile:=zeilenbeginn; +wahldaten:=wahldatenzumindex(ischueler,kennungkurse);schuelername:= +wahldatenzumindex(ischueler,kennungname);IF (schuelernameSUB 1)<> +anfangsbuchstabeTHEN anfangsbuchstabe:=schuelernameSUB 1;standardmeldung( +meldnrbearbeitetwird,anfangsbuchstabe+kennzhell)FI ;fehlerinschuelerwahl:= +FALSE ;belegtebloecke:="";poskurs:=1;FOR ikursFROM 1UPTO maxkurseREP kurs:= +subtext(wahldaten,poskurs+3,poskurs+laengekurs+2);IF kurs<>""THEN +facheintragen;kurseintragen;kurshinweiseintragenELSE leereintraegeergaenzen +FI ;poskursINCR laengeschuelerkursPER ;fehlerzeilezusammenstellen;IF +fehlerinschuelerwahlCOR alleschuelerTHEN line(prot);changeall(schuelername, +trenner,", ");putline(prot,schuelername);putline(prot,fachzeile);putline(prot +,kurszeile);putline(prot,fehlerzeile)FI .facheintragen:fachzeileCAT subtext( +kurs,1,2);fachzeileCAT " :".kurseintragen:IF subtext(kurs,3,6)<>" "THEN +kurszeileCAT subtext(kurs,3,6)ELSE kurszeileCAT subtext(wahldaten,poskurs+1, +poskurs+2);kurszeileCAT " "FI ;kurszeileCAT doppelpunkt.kurshinweiseintragen +:IF subtext(kurs,3,6)=" "THEN kurshinweis(ikurs).eintrag:=fehlenderkurs +ELIF suchpos(gueltigekurse,kurs,laengekursangaben)=0THEN kurshinweis(ikurs). +eintrag:=ungueltigerkursELSE kurshinweis(ikurs).eintrag:="";planbloecke:= +kursdaten(kurs,kennungplanblock);kurshinweis(ikurs).pb1:=subtext(planbloecke, +1,3);kurshinweis(ikurs).pb2:=subtext(planbloecke,4,6);belegtenblockeintragen( +kurshinweis(ikurs).pb1);belegtenblockeintragen(kurshinweis(ikurs).pb2)FI . +fehlerzeilezusammenstellen:fehlerzeile:=zeilenbeginn;FOR ikursFROM 1UPTO +maxkurseREP IF kurshinweis(ikurs).eintrag=""THEN doppelbelegungpruefen; +fehlerzeileCAT kurshinweis(ikurs).eintrag;ELIF kurshinweis(ikurs).eintrag= +leereintragTHEN fehlerzeileCAT leereintragELSE fehlerzeileCAT kurshinweis( +ikurs).eintrag;fehlerinschuelerwahl:=TRUE FI PER .leereintraegeergaenzen: +fachzeileCAT leereintrag;kurszeileCAT leereintrag;kurshinweis(ikurs).eintrag +:=leereintrag.doppelbelegungpruefen:pruefblock:=kurshinweis(ikurs).pb1;IF +schnittliegtvorTHEN kurshinweis(ikurs).eintrag:=gleichzeitigerkurs; +fehlerinschuelerwahl:=TRUE ELSE pruefblock:=kurshinweis(ikurs).pb2;IF +schnittliegtvorTHEN kurshinweis(ikurs).eintrag:=gleichzeitigerkurs; +fehlerinschuelerwahl:=TRUE ELSE kurshinweis(ikurs).eintrag:=leereintragFI FI +.schnittliegtvor:IF pruefblock=pbleerTHEN FALSE ELSE pos(belegtebloecke, +pruefblock,suchpos(belegtebloecke,pruefblock,laengeplanblock)+1)>0FI .END +PROC kurszuordnungenanalysieren;PROC belegtenblockeintragen(TEXT VAR +belegterpb):IF belegterpb<>pbleerTHEN pbnr:=subtext(belegterpb,1,2);pbkennung +:=belegterpbSUB laengeplanblock;belegtebloeckeCAT pbnr;belegtebloeckeCAT +pbkennung;IF pbkennung=blankTHEN belegtebloeckeCAT pbnr;belegtebloeckeCAT +pbkennunga;belegtebloeckeCAT pbnr;belegtebloeckeCAT pbkennungb;ELSE +belegtebloeckeCAT pbnr;belegtebloeckeCAT blankFI ;FI END PROC +belegtenblockeintragen;PROC standderkursbildunganalysierendrucken(BOOL CONST +drucken):IF druckenTHEN print(protname)FI ;forget(protname,quiet);enter(2) +END PROC standderkursbildunganalysierendrucken;PROC eingangsbehandlung: +pruefstatus:=0;standardmeldung(meldnrdatenwerdengeprueft,"");aktjgst:= +standardmaskenfeld(fnraktjgst);gewhalbjahr:=standardmaskenfeld(fnrhalbjahr); +gewjgst:=standardmaskenfeld(fnrgewjgst);neuanjgst:=standardmaskenfeld( +fnrneuanjgst);alleschueler:=standardmaskenfeld(fnralleschueler)<>"";IF +aktuelleshalbjahr=""THEN aktuelleshalbjahr:=schulkenndatum(schulhalbjahr)FI ; +allgemeinefelderpruefen.allgemeinefelderpruefen:standardpruefe(3,fnrgewjgst, +jgst11,jgst13,"",pruefstatus);IF pruefstatus>0THEN LEAVE +allgemeinefelderpruefenFI ;standardpruefe(3,fnrhalbjahr,hj1,hj2,"", +pruefstatus);IF pruefstatus>0THEN LEAVE allgemeinefelderpruefenFI ;IF aktjgst +<>""THEN IF int(aktuelleshalbjahr)=hj2THEN standardpruefe(3,fnraktjgst,jgst10 +,jgst13,"",pruefstatus)ELSE standardpruefe(3,fnraktjgst,jgst11,jgst13,"", +pruefstatus)FI ;IF pruefstatus>0THEN LEAVE allgemeinefelderpruefenFI ;FI ;IF +neuanjgst<>""THEN standardpruefe(3,fnrneuanjgst,jgst11,jgst13,"",pruefstatus) +;IF pruefstatus>0THEN LEAVE allgemeinefelderpruefenFI ;FI ;IF aktjgst<>"" +THEN IF neuanjgst<>""THEN IF int(neuanjgst)<>int(aktjgst)+1THEN +standardmeldung(meldnrfalschejgstfolge,"");pruefstatus:=fnraktjgst;LEAVE +allgemeinefelderpruefenFI ;gewschueler:=""ELSE gewschueler:= +nuraktuelleschuelerFI ELIF neuanjgst=""THEN standardmeldung( +meldnrbitteangabeergaenzen,"");pruefstatus:=fnraktjgst;LEAVE +allgemeinefelderpruefenELSE gewschueler:=nurneuangemeldete;aktjgst:=text(int( +neuanjgst)-1)FI ;IF aktjgst>gewjgstCOR (aktjgst=gewjgstAND aktuelleshalbjahr> +gewhalbjahr)THEN standardmeldung(meldnrfalschebezugsjgst,"");pruefstatus:= +fnrgewjgst;LEAVE allgemeinefelderpruefenFI .END PROC eingangsbehandlung;INT +PROC suchpos(TEXT CONST quelle,suchtext,INT CONST laenge):INT VAR findpos:= +pos(quelle,suchtext);WHILE findpos>0REP IF findposMOD laenge=1THEN LEAVE +suchposWITH findposELSE findpos:=pos(quelle,suchtext,findpos+1);FI PER ; +findposEND PROC suchpos;PROC initfelderdeseingangsbildschirms:INT VAR i;FOR i +FROM 1UPTO feldanzmaskeeingangREP feldbs1(i):=""PER END PROC +initfelderdeseingangsbildschirms;PROC wertedeseingangsbildschirmsmerken:INT +VAR i;letztecursorfnr:=infeld;FOR iFROM 1UPTO feldanzmaskeeingangREP feldbs1( +i):=standardmaskenfeld(i)PER END PROC wertedeseingangsbildschirmsmerken;PROC +wertedeseingangsbildschirmsholen:INT VAR i;FOR iFROM 1UPTO +feldanzmaskeeingangREP standardmaskenfeld(feldbs1(i),i)PER END PROC +wertedeseingangsbildschirmsholen;END PACKET standderkursbildunganalysieren + -- cgit v1.2.3