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.daten f\303\274r schulis aufbereiten" | 184 +++++++++++++++++++++ 1 file changed, 184 insertions(+) create mode 100644 "app/schulis/2.2.1/src/4.daten f\303\274r schulis aufbereiten" (limited to 'app/schulis/2.2.1/src/4.daten für schulis aufbereiten') diff --git "a/app/schulis/2.2.1/src/4.daten f\303\274r schulis aufbereiten" "b/app/schulis/2.2.1/src/4.daten f\303\274r schulis aufbereiten" new file mode 100644 index 0000000..89c96ea --- /dev/null +++ "b/app/schulis/2.2.1/src/4.daten f\303\274r schulis aufbereiten" @@ -0,0 +1,184 @@ +PACKET integastundenplanuebernehmenDEFINES integastundenplanarchivlisten, +integastundenplanstdvproc,integastundenplanuebernehmen, +integastundenplandatenschreiben:LET integadatei="SCHULIS.PUN",filemodus= +"file ibm",dos="DOS",anzstdenprotag=12,schulname="Schulname",schulort= +"Schulort",schuljahr="Schuljahr",halbjahr="Schulhalbjahr",maskeeingang= +"ms stdplan von intega uebernehmen",listenname= +"Liste der Dateien auf der Diskette:",protokollname= +"Stundenplan von INTEGA übernehmen",leerzeile=" ",ueberschrift= +" Fehlerprotokoll zur Übernahme des Stundenplans ",unterstrich= +" ------------------------------------------------------------------", +fehler1kopf="1. Kopplung existiert in schulis nicht für:",fehler2kopf= +"2. Lehrveranstaltung kann nicht identifiziert werden für:",fehler3kopf1= +"3. Kopplung und Paraphe passen in schulis auf Lehrveranstaltung, aber", +fehler3kopf2=" Fach stimmt nicht überein für:",fehler4kopf= +"4. In INTEGA wurden Zeiten verplant, die in schulis gesperrt sind für:", +fehlerspalten1= +" Kopplung Fach Lehrer Klassengruppen Zeit Raum", +fehlerspalten2=" schulis INTEGA ",fehlerspalten3= +" Lehrver. Kopplung Fach Lehrer Klassengruppen Zeit Raum", +spalten3fueller=" ", +keinfehler=" Kein Fehler dieser Art aufgetreten!",tab1= +" +--------+--------+----+------+-----------------------+-----+----+",tab2= +" +--------+----+------+-----------------------+-----+----+", +feldakthj=2,laengelvkopp=8,laengeindex=4,laengezeitraum=6,beginnkopp=1, +endekopp=8,beginnfach=9,endefach=12,beginnlvfach=3,endelvfach=4,beginnpar=13, +endepar=16,beginnklgr=19,endeklgr=42,beginnbelegg=43,fachergaenzung=" ", +leereraumangabe=" ",leerelv=" ",pseudoraum="PSEU",ausgabeparam="#", +frageraum="????",kennungkopplung="K",kennungparaphe="P",kennungzulzeit="ZZ", +kennungmo="Mo ",kennungdi="Di ",kennungmi="Mi ",kennungdo="Do ",kennungfr= +"Fr ",kennungsa="Sa ",meldungserverfehler=376,meldungkeinstdplan=366, +meldungkeinesugruppen=334,meldungzuvielesugruppen=356,meldungkeinelv=326, +meldungzuvielelv=358,meldungstdplanveraltet=377,meldungbasisinkon=378, +meldwarten=69,melddatenaufber=357,melduebern=374,meldueberschr=372, +meldaenderungenunvollstaendig=364,meldprotokollaufbereiten=373, +meldstandderuebern=375,meldarchivfehler=343;FILE VAR g,protokoll, +integastdplandatei;THESAURUS VAR thes;TEXT VAR gewsj,gewhj,t,integaeintrag,lv +,leistekoppexistnicht,leistelvnichtident,leistelvfalschesfach,leisteunzzeit, +integakopplung,integafach,integaparaphe,integabelegg,zeitraumeintrag, +zeitderlv,raumderlv,stdplaneintrag;INT VAR fstat,i,posanf,posende, +intzeitderlv;BOOL VAR archivfehler:=FALSE ,transferfehler:=FALSE ,eintragok; +PROC archivanmelden(INT CONST ruecksprung):archivfehler:=FALSE ; +commanddialogue(FALSE );disablestop;reserve(filemodus,/dos);IF iserrorTHEN +archivfehler:=TRUE ;abbruchnachfehler(ruecksprung);LEAVE archivanmeldenFI ; +enablestopEND PROC archivanmelden;PROC integastundenplanarchivlisten: +standardmeldung(meldwarten," ");archivanmelden(1);IF archivfehlerTHEN LEAVE +integastundenplanarchivlistenFI ;disablestop;forget(listenname,quiet);thes:= +ALL (/dos);IF iserrorTHEN archivfehler:=TRUE ;abbruchnachfehler(1);ELSE +release(/dos);thesaurusaufbereiten;enablestop;zeigedatei(listenname,"vr")FI . +thesaurusaufbereiten:g:=sequentialfile(output,listenname);t:=" ";i:=0;REP get +(thes,t,i);putline(g,t)UNTIL t=""PER .END PROC integastundenplanarchivlisten; +PROC integastundenplanstdvproc:standardstartproc(maskeeingang);IF +transferfehlerTHEN standardmeldung(meldaenderungenunvollstaendig,"")FI ; +transferfehler:=FALSE ;infeld(2);standardnprocEND PROC +integastundenplanstdvproc;PROC integastundenplanuebernehmen:standardmeldung( +meldwarten,"");gewsj:=schulkenndatum(schuljahr);gewhj:=schulkenndatum( +halbjahr);IF standardmaskenfeld(feldakthj)=""THEN geplanteshjundsjberechnen( +gewhj,gewsj)FI ;stundenplanhalbjahrsetzen(gewhj,gewsj);standardmeldung( +melddatenaufber,"");stundenplanbasisundstundenplanholen(fstat);IF fstat<>0 +CAND fstat<>8THEN standardmeldung(melduebern,"")ELSE standardmeldung( +meldueberschr,"")FI ;standardnproc.END PROC integastundenplanuebernehmen; +PROC integastundenplandatenschreiben:TEXT VAR alteerstellungszeit:="";IF +fstat<>0CAND fstat<>8THEN standardmeldung(meldwarten,""); +stundenplanbasisundstundenplanerstellen(fstat);IF fstat<>0THEN return(2); +meldungausgeben(fstat);LEAVE integastundenplandatenschreibenELSE +stundenplanbasissichern(fstat);stundenplansichern(fstat);IF fstat<>0THEN +return(2);meldungausgeben(fstat);LEAVE integastundenplandatenschreibenFI ;FI +;FI ;alteerstellungszeit:=erstellungszeitderdatenraeume;stundenplanloeschen( +fstat);stundenplanerstellen(alteerstellungszeit,fstat);datenvonarchivholen(2) +;IF archivfehlerTHEN LEAVE integastundenplandatenschreibenFI ; +dateninstdplanschreibenEND PROC integastundenplandatenschreiben;PROC +datenvonarchivholen(INT CONST ruecksprung):standardmeldung(meldwarten," "); +archivanmelden(ruecksprung);IF archivfehlerTHEN LEAVE datenvonarchivholenFI ; +disablestop;fetch(integadatei,/dos);IF iserrorTHEN archivfehler:=TRUE ; +abbruchnachfehler(ruecksprung);ELSE release(/dos);enablestop;commanddialogue( +TRUE );FI END PROC datenvonarchivholen;PROC dateninstdplanschreiben:INT VAR +zeilennr:=0;TEXT VAR anzzeilen;BOOL VAR lvnichtvermerkt:=TRUE ; +fehlerprotvorbereiten;datenraumankoppeln;WHILE NOT eof(integastdplandatei) +REP zeilennrINCR 1;getline(integastdplandatei,integaeintrag);standardmeldung( +meldstandderuebern,anzzeilen+ausgabeparam+text(zeilennr)+ausgabeparam); +stundenplaneintraegevornehmenPER ;IF leisteunzzeit<>""COR +leistekoppexistnicht<>""COR leistelvnichtident<>""COR leistelvfalschesfach<> +""THEN sicherstdplan;standardmeldung(meldprotokollaufbereiten," ");forget( +protokollname,quiet);protokoll:=sequentialfile(output,protokollname); +fuelleprotokoll;infeld(1);standardfelderausgeben;infeld(2);zeigedatei( +protokollname,"vr")ELSE sicherstdplan;infeld(1);standardfelderausgeben;infeld +(2);return(2)FI .sicherstdplan:stundenplanreorganisierenundsichern(fstat);IF +fstat<>0THEN transferfehler:=TRUE FI .fehlerprotvorbereiten:leisteunzzeit:="" +;leistekoppexistnicht:="";leistelvnichtident:="";leistelvfalschesfach:="". +datenraumankoppeln:integastdplandatei:=sequentialfile(input,integadatei); +anzzeilen:=text(lines(integastdplandatei)).stundenplaneintraegevornehmen: +integakopplung:=text(integaeintrag,laengelvkopp);integafach:=subtext( +integaeintrag,beginnfach,endefach);integaparaphe:=subtext(integaeintrag, +beginnpar,endepar);integabelegg:=subtext(integaeintrag,beginnbelegg);t:= +allelvmit(kennungkopplung,integakopplung);IF t=""THEN leistekoppexistnicht +CAT text(zeilennr,laengeindex)ELSE IF lvmitgleicherparaphe(t)THEN pruefefach +ELSE leistelvnichtidentCAT text(zeilennr,laengeindex)FI FI .pruefefach:IF +integafach<>subtext(lv,beginnlvfach,endelvfach)+fachergaenzungTHEN +leistelvfalschesfachCAT text(zeilennr,laengeindex);leistelvfalschesfachCAT +text(lv,laengelvkopp)ELSE tragstundeneinundpruefezeitenFI . +tragstundeneinundpruefezeiten:stdplaneintrag:=lv+integakopplung+integaparaphe +;posanf:=1;posende:=length(integabelegg);lvnichtvermerkt:=TRUE ;WHILE posanf< +posendeREP zeitraumeintrag:=subtext(integabelegg,posanf,posanf+laengezeitraum +-1);zeitderlv:=text(zeitraumeintrag,2);intzeitderlv:=int(zeitderlv);raumderlv +:=compress(subtext(zeitraumeintrag,3));IF raumderlv=""COR raumderlv= +pseudoraumCOR raumderlv=frageraumTHEN raumderlv:=leereraumangabeFI ;IF NOT +bezeichnungzulaessig(kennungzulzeit,zeitderlv)THEN IF lvnichtvermerktTHEN +leisteunzzeitCAT text(zeilennr,laengeindex);leisteunzzeitCAT text(lv, +laengelvkopp);lvnichtvermerkt:=FALSE FI ELSE planeintragvornehmen( +intzeitderlv,lv,raumderlv,eintragok);IF NOT eintragokTHEN transferfehler:= +TRUE FI ;FI ;posanfINCR laengezeitraumPER .fuelleprotokoll:putline(protokoll, +schulkenndatum(schulname));putline(protokoll,text(schulkenndatum(schulort),65 +)+date);putline(protokoll,leerzeile);putline(protokoll,ueberschrift+gewhj+ +". "+text(gewsj,2)+"/"+subtext(gewsj,3)+" von INTEGA");putline(protokoll, +unterstrich);putline(protokoll,leerzeile);putline(protokoll,fehler1kopf); +putline(protokoll,leerzeile);IF leistekoppexistnicht=""THEN putline(protokoll +,keinfehler)ELSE putline(protokoll,fehlerspalten1);putline(protokoll,tab2); +gibfalschekopplungenausFI ;putline(protokoll,leerzeile);putline(protokoll, +fehler2kopf);putline(protokoll,leerzeile);IF leistelvnichtident=""THEN +putline(protokoll,keinfehler)ELSE putline(protokoll,fehlerspalten1);putline( +protokoll,tab2);gibfalschelvausFI ;putline(protokoll,leerzeile);putline( +protokoll,fehler3kopf1);putline(protokoll,fehler3kopf2);putline(protokoll, +leerzeile);IF leistelvnichtident=""THEN putline(protokoll,keinfehler)ELSE +putline(protokoll,fehlerspalten2);putline(protokoll,fehlerspalten3);putline( +protokoll,tab1);gibnichtidentlvausFI ;putline(protokoll,leerzeile);putline( +protokoll,fehler4kopf);putline(protokoll,leerzeile);IF leisteunzzeit=""THEN +putline(protokoll,keinfehler)ELSE putline(protokoll,fehlerspalten3);putline( +protokoll,tab1);gibfalschezeitenausFI .gibfalschezeitenaus:gibleisteaus( +leisteunzzeit,FALSE ,FALSE ).gibfalschekopplungenaus:gibleisteaus( +leistekoppexistnicht,TRUE ,TRUE ).gibfalschelvaus:gibleisteaus( +leistelvnichtident,TRUE ,TRUE ).gibnichtidentlvaus:gibleisteaus( +leistelvfalschesfach,FALSE ,TRUE ).END PROC dateninstdplanschreiben;PROC +gibleisteaus(TEXT CONST leiste,BOOL CONST ohnelv,allezeiten):INT VAR +posanfleiste,posendeleiste,posanflv,posanfbelegg,posendebelegg;BOOL VAR +erstezeilederlv:=TRUE ;posanfleiste:=1;posendeleiste:=length(leiste);modify( +integastdplandatei);WHILE posanfleiste