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/4.uv und kopplungen bearbeiten | 319 +++++++++++++++++++++ 1 file changed, 319 insertions(+) create mode 100644 app/schulis/2.2.1/src/4.uv und kopplungen bearbeiten (limited to 'app/schulis/2.2.1/src/4.uv und kopplungen bearbeiten') diff --git a/app/schulis/2.2.1/src/4.uv und kopplungen bearbeiten b/app/schulis/2.2.1/src/4.uv und kopplungen bearbeiten new file mode 100644 index 0000000..2733d0d --- /dev/null +++ b/app/schulis/2.2.1/src/4.uv und kopplungen bearbeiten @@ -0,0 +1,319 @@ +PACKET uvundkopplungenbearbeitenDEFINES uvukstdvproc,uvukspeichern,uvuklisten +,uvukvorjparaphe,uvukpruefbearb:LET ausknr=746,auskende="*",ra="c02 raeume", +sj="Schuljahr",hj="Schulhalbjahr",eingmaske="ms eing uv und kopplungen", +bearbmaske="ms bearb uv und kopplungen",kennzeichnungakt="aktuell", +kennzeichnunggepl="geplant",ausgparam="#",leereparaphe="",trenner="�",bearbzl +=18,letztesfld=163,anzeingfld=10,laengekopplung=8,laengejgst=2,laengefach=2, +krlvjgst=2,fldjgst=3,krlvfa=4,fldfa=5,krlvkopp=6,fldkopp=7,krlvpar=8,fldpar=9 +,fldjahr=10,meldg0=56,meldg1=325,meldg2=326,meldg3=69,meldg4=60,meldg6=305, +meldg7=355,meldg8=353,meldg9=354,meldg11=149,meldg12=142,meldg13=50,meldg14= +63,meldg15=327,meldg16=328,meldg17=329,meldg18=360,meldg19=318,meldg20=310, +meldg21=387,meldg22=388,meldg23=352;ROW anzeingfldTEXT VAR eingbs;ROW bearbzl +STRUCT (TEXT kopplg,fakenn,lehrer,ROW 4TEXT klgr,ROW 2TEXT rgr)VAR dbinh;INT +VAR i,k,z,zz,letztepos:=2,index:=0,fall:=0,aktpos,suchpos,anzdbsaetze;INT +VAR aktzeile,jgst,fachsoll,fachist,lehrersoll,lehrerist,lehrerimfach;TEXT +VAR lv,sicherungstupel,allefaecher,fachbez,fachgrbez,fach,paraphe, +lehrbeflehrer,liste;TEXT VAR klgrkatalog,jgstkatalog,rgrkatalog,lehrv:="", +fachkatalog:="",klgrpruefkatalog,parkatalog,sollstdkatalog,aktschgrkatalog, +geplschgrkatalog;TEXT VAR schj,schhj:="0",aktschhj:="0",aktschj:="0", +geplschhj:="0",geplschj:="0",aenderungskennzeichen:="";TEXT VAR plausikopp, +plausipa,plausilv,jgstsugrp,plausijgst;TEXT VAR kopplung,lvfake,lehrer,sgr1, +sgr2,sgr3,sgr4,rgr1,rgr2,maskenkopf;BOOL VAR istfehler:=FALSE , +koppparnichtgeprueft:=TRUE ,saetzeunveraendert:=TRUE ,ohnefehler:=TRUE ;PROC +holeakthj:aktschhj:=schulkenndatum(hj);aktschj:=schulkenndatum(sj);geplschhj +:=aktschhj;geplschj:=aktschj;geplanteshjundsjberechnen(geplschhj,geplschj) +END PROC holeakthj;PROC holeaktdatenpruefung:i:=100;statleseschleife( +dnrfaecher,"","",fnrffach,fnrffach,PROC spezcat);i:=103;statleseschleife( +dnrlehrer,"","",fnrlparaphe,fnrlparaphe,PROC spezcat);END PROC +holeaktdatenpruefung;PROC holeaktdatenspeicherung:i:=101;statleseschleife( +dnrklassengruppen,"","",fnrkgklassengrp,fnrkgklassengrp,PROC spezcat);i:=102; +statleseschleife(dnrraumgruppen,"","",fnrrgraumgrp,fnrrgraumgrp,PROC spezcat) +;i:=104;statleseschleife(dnrschluessel,ra,"",fnrschlsachgebiet, +fnrschlschluessel,PROC spezcat);i:=105;statleseschleife(dnraktschuelergruppen +,"","",fnrsgrpsj,fnrsgrphj,PROC spezcat);i:=106;statleseschleife( +dnraktschuelergruppen,"","",fnrsgrpsj,fnrsgrphj,PROC spezcat);END PROC +holeaktdatenspeicherung;PROC initrows:IF fachkatalog=""THEN fachkatalog:= +trenner;klgrkatalog:=trenner;klgrpruefkatalog:=trenner;jgstkatalog:= +"�5�05�6�06�7�07�8�08�";jgstkatalogCAT "9�09�10�11�12�13�0�00�"; +aktschgrkatalog:=trenner;geplschgrkatalog:=trenner;rgrkatalog:=trenner; +parkatalog:=trenner;sollstdkatalog:=trenner;FOR iFROM 1UPTO anzeingfldREP +eingbs(i):=""PER ;FOR iFROM 1UPTO bearbzlREP dbinh(i).kopplg:="";dbinh(i). +fakenn:="";dbinh(i).lehrer:="";dbinh(i).klgr(1):="";dbinh(i).klgr(2):=""; +dbinh(i).klgr(3):="";dbinh(i).klgr(4):="";dbinh(i).rgr(1):="";dbinh(i).rgr(2) +:="";PER ;FI END PROC initrows;PROC uvukpruefbearb:standardmeldung(meldg3," " +);IF schhj="0"THEN holeakthjFI ;merkeeingsch;istfehler:=FALSE ;gibteskennz; +stellejahrfest;putwert(fnrlvsj,schj);putwert(fnrlvhj,schhj);putintwert( +fnrlvjgst,0);putwert(fnrlvfachkennung,"");search(dnrlehrveranstaltungen, +FALSE );IF dbstatus<>okCAND wert(fnrlvsj)<>schjCAND wert(fnrlvhj)<>schhjTHEN +dateileerFI ;pruefung;erfasstelvausgeben;standardnproc.gibteskennz:letztepos +:=2;IF eingbs(krlvjgst)<>""THEN fall:=2;LEAVE gibteskennzELIF eingbs(krlvfa) +<>""THEN fall:=4;LEAVE gibteskennzELIF eingbs(krlvkopp)<>""THEN fall:=6; +LEAVE gibteskennzELIF eingbs(krlvpar)<>""THEN fall:=8;LEAVE gibteskennzELSE +zurueckmitmeldg(meldg0,1,letztepos,"");LEAVE uvukpruefbearbFI ;IF eingbs(fall ++1)<>""THEN letztepos:=fall+1ELSE letztepos:=fallFI .stellejahrfest:IF eingbs +(fldjahr)=""THEN schhj:=geplschhj;schj:=geplschj;aenderungskennzeichen:= +kennzeichnunggeplELSE schhj:=aktschhj;schj:=aktschj;aenderungskennzeichen:= +kennzeichnungaktFI .pruefung:IF fachkatalog=trennerTHEN holeaktdatenpruefung +FI ;prueferest(fall);IF istfehlerTHEN zurueckmitmeldg(meldg0,1,letztepos,""); +LEAVE uvukpruefbearbFI ;IF fall=2THEN IF eingbs(fldjgst)<>""THEN pruefejgst; +FI ;index:=dnrlehrveranstaltungen;ELIF fall=4THEN pruefedbfld(eingbs(fldfa), +fachkatalog,fldfa);index:=ixlvsjhjkennELIF fall=6THEN pruefekopplungsnr;index +:=ixlvsjhjkopp;ELSE pruefedbfld(eingbs(fldpar),parkatalog,fldpar);index:= +ixlvsjhjparFI ;IF istfehlerTHEN LEAVE uvukpruefbearbFI .pruefekopplungsnr: +putwert(fnrlvsj,schj);putwert(fnrlvhj,schhj);putwert(fnrlvkopplung,eingbs( +fldkopp));search(ixlvsjhjkopp);IF dbstatus=1COR dbstatus=3THEN +koppnichtgefundenFI .koppnichtgefunden:zurueckmitmeldg(meldg1,1,fldkopp,""); +LEAVE uvukpruefbearb.dateileer:zurueckmitmeldg(meldg2,1,letztepos,"");LEAVE +uvukpruefbearb.END PROC uvukpruefbearb;PROC prueferest(INT CONST feldnr):FOR +iFROM 2UPTO feldnr-1REP IF eingbs(i)<>""THEN fehlerFI PER ;FOR iFROM feldnr+2 +UPTO 9REP IF eingbs(i)<>""THEN fehlerFI PER .fehler:istfehler:=TRUE ; +letztepos:=i;LEAVE prueferest.END PROC prueferest;PROC pruefejgst:IF compress +(eingbs(fldjgst))="0"COR eingbs(fldjgst)="00"THEN LEAVE pruefejgstELIF int( +eingbs(fldjgst))>4CAND int(eingbs(fldjgst))<14THEN LEAVE pruefejgstELSE +zurueckmitmeldg(meldg6,1,fldjgst,"");istfehler:=TRUE ;FI .END PROC pruefejgst +;PROC pruefedbfld(TEXT CONST objekt,katalog,INT CONST feld):plausijgst:=text( +standardmaskenfeld(i*9-6),2);IF objekt=""THEN LEAVE pruefedbfldELIF katalog= +jgstkatalogTHEN IF pos(jgstkatalog,trenner+objekt+trenner)=0THEN +pruefeaufschuelergruppeELSE pruefejgstenFI ;ELIF pos(katalog,trenner+objekt+ +trenner)=0THEN istfehler:=TRUE ;IF katalog=fachkatalogTHEN zurueckmitmeldg( +meldg11,1,feld,objekt+"#")ELIF katalog=parkatalogTHEN zurueckmitmeldg(meldg12 +,1,feld,objekt+"#")ELIF katalog=rgrkatalogTHEN zurueckmitmeldg(meldg16,1,feld +,objekt+"#")FI FI .pruefeaufschuelergruppe:IF eingbs(fldjahr)<>""THEN IF pos( +aktschgrkatalog,trenner+text(int(plausijgst))+objekt+trenner)<>0THEN LEAVE +pruefedbfldELSE pruefeaufklgrFI ELIF pos(geplschgrkatalog,trenner+text(int( +plausijgst))+objekt+trenner)<>0THEN LEAVE pruefedbfldELSE pruefeaufklgrFI . +pruefeaufklgr:IF pos(klgrkatalog,trenner+objekt+trenner)>0THEN IF +jgstnichtnullTHEN pruefejgstinklgrFI ELSE istfehler:=TRUE ;zurueckmitmeldg( +meldg15,1,feld,objekt+"#")FI .pruefejgsten:IF int(plausijgst)<>int(objekt) +CAND int(plausijgst)<>0THEN istfehler:=TRUE ;zurueckmitmeldg(meldg9,1,feld, +objekt+"#"+plausijgst+"#");FI .jgstnichtnull:plausijgst<>"00". +pruefejgstinklgr:zz:=0;jgstsugrp:="";zz:=pos(klgrpruefkatalog,trenner+objekt+ +trenner)+length(objekt)+2;jgstsugrp:=subtext(klgrpruefkatalog,zz,pos( +klgrpruefkatalog,trenner,zz)-1);FOR zzFROM 1UPTO length(jgstsugrp)DIV 2REP +IF subtext(jgstsugrp,zz*2-1,zz*2)<>plausijgstTHEN istfehler:=TRUE ; +zurueckmitmeldg(meldg9,1,feld,objekt+"#"+plausijgst+"#");LEAVE pruefedbfldFI +PER ;END PROC pruefedbfld;PROC pruefekopplgpar(TEXT CONST kopp,lv,pa,INT +CONST feldnr):plausikopp:=kopp;plausipa:=pa;plausilv:=lv;pruefeindb; +pruefeaufbs.pruefeindb:istfehler:=FALSE ;inittupel(dnrlehrveranstaltungen); +putwert(fnrlvkopplung,plausikopp);z:=feldnr;statleseschleife(ixlvsjhjkopp, +schj,schhj,fnrlvsj,fnrlvhj,PROC suchekopplungen);IF istfehlerTHEN infeld( +feldnr);LEAVE pruefekopplgparFI .pruefeaufbs:INT VAR z;FOR zFROM 1UPTO i-1 +REP IF plausikopp=standardmaskenfeld(z*9-7)THEN IF plausipa= +standardmaskenfeld(z*9-5)THEN istfehler:=TRUE ;zurueckmitmeldg(meldg8,1, +feldnr,plausipa+"#"+plausikopp+"#"+text(standardmaskenfeld(z*9-6),2)+dbinh(z) +.fakenn+"#");LEAVE pruefekopplgparFI ;FI ;PER ;FOR zFROM i+1UPTO bearbzlREP +IF plausikopp=standardmaskenfeld(z*9-7)THEN IF plausipa=standardmaskenfeld(z* +9-5)THEN istfehler:=TRUE ;zurueckmitmeldg(meldg8,1,feldnr,plausipa+"#"+ +plausikopp+"#"+text(standardmaskenfeld(z*9-6),2)+dbinh(z).fakenn+"#");LEAVE +pruefekopplgparFI ;FI ;PER .END PROC pruefekopplgpar;PROC suchekopplungen( +BOOL VAR b):IF wert(fnrlvsj)=schjCAND wert(fnrlvhj)=schhjCAND wert( +fnrlvkopplung)=plausikoppCAND dbstatus=0THEN ueberpruefeparapheELSE b:=TRUE +FI .ueberpruefeparaphe:IF wert(fnrlvparaphe)=plausipaCAND nichtplausilvTHEN +istfehler:=TRUE ;zurueckmitmeldg(meldg8,1,z,plausipa+"#"+plausikopp+"#"+ +formattext(wert(fnrlvjgst))+wert(fnrlvfachkennung)+"#");b:=TRUE ;LEAVE +suchekopplungenFI .nichtplausilv:formattext(wert(fnrlvjgst))<>text(plausilv,2 +)COR wert(fnrlvfachkennung)<>dbinh(i).fakenn.END PROC suchekopplungen;PROC +zurueckmitmeldg(INT CONST meldg,ruecksprung,feld,TEXT CONST markiert):IF +ruecksprung>0THEN return(ruecksprung)FI ;standardmeldung(meldg,markiert);IF +feld>0THEN infeld(feld)FI END PROC zurueckmitmeldg;PROC uvukstdvproc:initrows +;fachbez:=trenner;fachgrbez:=trenner;gibeingschaus;standardnproc.END PROC +uvukstdvproc;PROC gibeingschaus:standardstartproc(eingmaske);gibeingbsaus; +standardfelderausgeben;infeld(letztepos).gibeingbsaus:FOR iFROM 2UPTO +anzeingfldREP standardmaskenfeld(eingbs(i),i);IF eingbs(i)<>""THEN letztepos +:=iFI PER .END PROC gibeingschaus;PROC erfasstelvausgeben:anzdbsaetze:=0;k:=1 +;pruefobsaetzevorhanden;loeschefelder;maskenkopf:=text(vergleichsknoten)+" "+ +schhj+"."+" "+subtext(schj,1,2)+"/"+subtext(schj,3);standardstartproc( +bearbmaske);standardkopfmaskeaktualisieren(maskenkopf);startebildschirmblock( +index,bearbzl-1);bildschirmblock(PROC gibbearbzeileaus,BOOL PROC (INT CONST ) +pruefung,i);standardfelderausgeben;infeld(2).pruefobsaetzevorhanden:putwert( +fnrlvsj,schj);putwert(fnrlvhj,schhj);putintwert(fnrlvjgst,int(eingbs(fldjgst) +));putwert(fnrlvfachkennung,eingbs(fldfa));putwert(fnrlvkopplung,eingbs( +fldkopp));putwert(fnrlvparaphe,eingbs(fldpar));search(index,FALSE );IF +dbstatus<>okTHEN zurueckmitmeldg(meldg2,1,letztepos,"");LEAVE +erfasstelvausgebenELSE pruefobsatzrichtigFI .pruefobsatzrichtig:IF wert( +fnrlvsj)=schjCAND wert(fnrlvhj)=schhjTHEN IF fall=1CAND eingbs(fldjgst)<>"" +CAND intwert(fnrlvjgst)<>int(eingbs(fldjgst))THEN gibfehlerausELIF fall=2 +CAND eingbs(fldfa)<>""CAND text(wert(fnrlvfachkennung),2)<>eingbs(fldfa)THEN +gibfehlerausELIF fall=3CAND eingbs(fldkopp)<>""CAND wert(fnrlvkopplung)<> +eingbs(fldkopp)THEN gibfehlerausELIF fall=4CAND eingbs(fldpar)<>""CAND wert( +fnrlvparaphe)<>eingbs(fldpar)THEN gibfehlerausFI ELSE gibfehlerausFI . +gibfehleraus:zurueckmitmeldg(meldg2,1,letztepos,"");LEAVE erfasstelvausgeben. +END PROC erfasstelvausgeben;PROC loeschefelder:FOR iFROM 1UPTO bearbzlREP +dbinh(i).kopplg:="";dbinh(i).fakenn:="";dbinh(i).lehrer:="";dbinh(i).klgr(1) +:="";dbinh(i).klgr(2):="";dbinh(i).klgr(3):="";dbinh(i).klgr(4):="";dbinh(i). +rgr(1):="";dbinh(i).rgr(2):="";PER ;FOR iFROM 2UPTO letztesfldREP +standardmaskenfeld("",i)PER .END PROC loeschefelder;PROC gibbearbzeileaus: +kopplung:=wert(fnrlvkopplung);lvfake:=wert(fnrlvfachkennung);lehrer:=wert( +fnrlvparaphe);sgr1:=wert(fnrlvklgrp1);sgr2:=wert(fnrlvklgrp2);sgr3:=wert( +fnrlvklgrp3);sgr4:=wert(fnrlvklgrp4);rgr1:=wert(fnrlvraumgrp1);rgr2:=wert( +fnrlvraumgrp2);merkdbwerte;lehrv:=formattext(wert(fnrlvjgst))+text(lvfake,2)+ +text(subtext(lvfake,3),4)+text(intwert(fnrlvwochenstd),2);standardmaskenfeld( +kopplung,k*9-7);standardmaskenfeld(lehrv,k*9-6);standardmaskenfeld(lehrer,k*9 +-5);standardmaskenfeld(sgr1,k*9-4);standardmaskenfeld(sgr2,k*9-3); +standardmaskenfeld(sgr3,k*9-2);standardmaskenfeld(sgr4,k*9-1); +standardmaskenfeld(rgr1,k*9);standardmaskenfeld(rgr2,k*9+1);IF k"00"THEN LEAVE formattextWITH "0"+jgst +FI ;jgstEND PROC formattext;PROC uvukspeichern(BOOL CONST speichern):IF +speichernTHEN speicherdaten;naechsterbildschirmELSE zurueckmitmeldg(meldg14,0 +,1,"");naechsterbildschirmFI .speicherdaten:saetzeunveraendert:=TRUE ;IF +aktschgrkatalog=trennerTHEN holeaktdatenspeicherungFI ;zurueckmitmeldg( +meldg17,0,1,"");FOR iFROM 1UPTO anzdbsaetzeREP kopplung:=standardmaskenfeld(i +*9-7);lehrer:=standardmaskenfeld(i*9-5);sgr1:=standardmaskenfeld(i*9-4);sgr2 +:=standardmaskenfeld(i*9-3);sgr3:=standardmaskenfeld(i*9-2);sgr4:= +standardmaskenfeld(i*9-1);rgr1:=standardmaskenfeld(i*9);rgr2:= +standardmaskenfeld(i*9+1);IF satzgeaendertTHEN infeld(i*9-7);pruefedaten;FI +PER ;zurueckmitmeldg(meldg13,0,1,"");FOR iFROM 1UPTO anzdbsaetzeREP kopplung +:=standardmaskenfeld(i*9-7);lehrer:=standardmaskenfeld(i*9-5);sgr1:= +standardmaskenfeld(i*9-4);sgr2:=standardmaskenfeld(i*9-3);sgr3:= +standardmaskenfeld(i*9-2);sgr4:=standardmaskenfeld(i*9-1);rgr1:= +standardmaskenfeld(i*9);rgr2:=standardmaskenfeld(i*9+1);IF satzgeaendertTHEN +IF saetzeunveraendertTHEN saetzeunveraendert:=FALSE FI ;infeld(i*9-7); +speicheraenderungenFI PER ;IF NOT saetzeunveraendertTHEN +aenderungsvermerksetzen(aenderungskennzeichen)FI .satzgeaendert:kopplung<> +dbinh(i).kopplgCOR lehrer<>dbinh(i).lehrerCOR sgr1<>dbinh(i).klgr(1)COR sgr2 +<>dbinh(i).klgr(2)COR sgr3<>dbinh(i).klgr(3)COR sgr4<>dbinh(i).klgr(4)COR +rgr1<>dbinh(i).rgr(1)COR rgr2<>dbinh(i).rgr(2).pruefedaten:istfehler:=FALSE ; +koppparnichtgeprueft:=TRUE ;IF kopplung<>dbinh(i).kopplgTHEN +pruefekopplungsnrFI ;IF lehrer<>dbinh(i).lehrerCAND lehrer<>leereparapheTHEN +pruefelehrerFI ;IF sgr1<>dbinh(i).klgr(1)COR sgr2<>dbinh(i).klgr(2)COR sgr3<> +dbinh(i).klgr(3)COR sgr4<>dbinh(i).klgr(4)THEN pruefeklassenFI ;IF rgr1<> +dbinh(i).rgr(1)COR rgr2<>dbinh(i).rgr(2)THEN prueferaeumeFI . +pruefekopplungsnr:IF kopplung=""THEN istfehler:=TRUE ;zurueckmitmeldg(meldg7, +1,i*9-7,"");LEAVE uvukspeichernELIF length(kopplung)>laengekopplungTHEN +istfehler:=TRUE ;zurueckmitmeldg(meldg4,1,i*9-7,"");LEAVE uvukspeichernELSE +koppparnichtgeprueft:=FALSE ;IF lehrer<>leereparapheTHEN pruefekopplgpar( +kopplung,standardmaskenfeld(i*9-6),lehrer,i*9-7);abfragefehlerFI FI . +pruefelehrer:pruefedbfld(lehrer,parkatalog,i*9-5);abfragefehler;IF +koppparnichtgeprueftTHEN pruefekopplgpar(kopplung,standardmaskenfeld(i*9-6), +lehrer,i*9-5);abfragefehlerFI .pruefeklassen:IF sgr1<>dbinh(i).klgr(1)THEN +pruefedbfld(sgr1,jgstkatalog,i*9-4);abfragefehlerFI ;IF sgr2<>dbinh(i).klgr(2 +)THEN pruefedbfld(sgr2,jgstkatalog,i*9-3);abfragefehlerFI ;IF sgr3<>dbinh(i). +klgr(3)THEN pruefedbfld(sgr3,jgstkatalog,i*9-2);abfragefehlerFI ;IF sgr4<> +dbinh(i).klgr(4)THEN pruefedbfld(sgr4,jgstkatalog,i*9-1);abfragefehlerFI . +prueferaeume:pruefedbfld(rgr1,rgrkatalog,i*9);abfragefehler;pruefedbfld(rgr2, +rgrkatalog,i*9+1);abfragefehler.abfragefehler:IF istfehlerTHEN LEAVE +uvukspeichernFI .speicheraenderungen:putwert(fnrlvsj,schj);putwert(fnrlvhj, +schhj);putintwert(fnrlvjgst,int(text(standardmaskenfeld(i*9-6),2)));putwert( +fnrlvfachkennung,dbinh(i).fakenn);search(dnrlehrveranstaltungen,TRUE );IF +dbstatus=0THEN aktualisierenFI .aktualisieren:putwert(fnrlvkopplung,kopplung) +;putwert(fnrlvparaphe,lehrer);putwert(fnrlvklgrp1,sgr1);putwert(fnrlvklgrp2, +sgr2);putwert(fnrlvklgrp3,sgr3);putwert(fnrlvklgrp4,sgr4);putwert( +fnrlvraumgrp1,rgr1);putwert(fnrlvraumgrp2,rgr2);update(dnrlehrveranstaltungen +).naechsterbildschirm:IF anzdbsaetzeokTHEN enter(2)ELSE anzdbsaetze:=0; +standardkopfmaskeaktualisieren(maskenkopf);startebildschirmblock(index, +bearbzl-1);bildschirmblock(PROC gibbearbzeileaus,BOOL PROC (INT CONST ) +pruefung,i);infeld(1);standardfelderausgeben;infeld(2);return(1)FI .END PROC +uvukspeichern;PROC uvuklisten:INT VAR aktfeld:=infeld;WINDOW VAR w:= +startwindow(42,23,77,1);liste:="";standardmeldung(meldg3,"");aktzeile:=( +aktfeld-2)DIV 9+1;jgst:=int(text(standardmaskenfeld(aktzeile*9-6),laengejgst) +);lv:=text(dbinh(aktzeile).fakenn,laengefach);sicherdbposition; +berechnefachdaten;bereitelisteauf;giballelehreraus;listeCAT "*";listeCAT +auskunftstextende;erstelledbposition;IF menuedraussenTHEN reorganizescreenFI +;open(w);auskunfterteilung(liste,w,FALSE );reorganizescreen;setlasteditvalues +;return(1).sicherdbposition:savetupel(index,sicherungstupel);. +erstelledbposition:restoretupel(index,sicherungstupel).berechnefachdaten: +allefaecher:=trenner;inittupel(dnrfaecher);putwert(fnrffach,compress(lv)); +search(dnrfaecher,TRUE );IF dbstatus<>okTHEN standardmeldung(meldg20,""); +return(1);LEAVE uvuklistenELSE IF wert(fnrffachgrp)<>""THEN lv:=text(wert( +fnrffachgrp),laengefach);ermittleanderefaecherELSE allefaecherCAT lv; +allefaecherCAT trenner;FI ;ermittlestdenFI .ermittleanderefaecher:IF fachbez= +trennerTHEN IF records(dnrfaecher)=0.0THEN standardmeldung(meldg21,"");return +(1);LEAVE uvuklistenELSE statleseschleife(dnrfaecher,"","",fnrffach,fnrffach, +PROC faecherholen)FI ;FI ;holallefaecher.holallefaecher:allefaecher:= +allefaecherzu(trenner+lv+trenner).ermittlestden:allestdenberechnen. +bereitelisteauf:listeCAT "Lehrbefähigte mit Stundenzahl:";listeCAT +auskunftstextende;listeCAT " Soll Ist im Fach Rest";listeCAT +auskunftstextende;listeCAT "Fach: ----+----+-------+----";listeCAT +auskunftstextende;listeCAT text(lv,5);listeCAT text(fachsoll,6);listeCAT text +(fachist,5);listeCAT text(fachsoll-fachist,13);listeCAT auskunftstextende; +listeCAT " ";listeCAT auskunftstextende.giballelehreraus:IF fachkatalog= +trennerTHEN holeaktdatenpruefungFI ;lehrbeflehrer:="";inittupel( +dnrlehrbefaehigungen);statleseschleife(dnrlehrbefaehigungen,compress(lv),"", +fnrlbfach,fnrlbparaphe,PROC lehrbeflehrerholen);IF lehrbeflehrer=""THEN +meldungkeinelehrbeflehrerELSE giblehrerausFI .meldungkeinelehrbeflehrer: +standardmeldung(meldg22,lv+ausgparam);return(1);LEAVE uvuklisten.giblehreraus +:suchpos:=1;aktpos:=1;listeCAT "Lehrer:";listeCAT auskunftstextende;WHILE +aktpos>0REP aktpos:=pos(lehrbeflehrer,trenner,suchpos);IF aktpos>0THEN +paraphe:=subtext(lehrbeflehrer,suchpos,aktpos-1);standardmeldung(meldg23, +paraphe+ausgparam);ermittlestdenlehrer;IF ohnefehlerTHEN listeCAT text( +paraphe,5);listeCAT text(lehrersoll,6);listeCAT text(lehrerist,5);listeCAT +text(lehrerimfach,8);listeCAT text(lehrersoll-lehrerist,5);listeCAT +auskunftstextendeFI ;suchpos:=aktpos+1FI ;PER ;infeld(1); +standardfelderausgeben;infeld(aktfeld).END PROC uvuklisten;PROC +ermittlestdenlehrer:lehrersoll:=0;lehrerist:=0;lehrerimfach:=0;ohnefehler:= +TRUE ;ermittlelehrersoll;ermittlelehreristundimfach.ermittlelehrersoll:zz:= +pos(parkatalog,trenner+paraphe+trenner);IF zz>0THEN lehrersoll:=int(( +sollstdkatalogSUB (zz+1))+(sollstdkatalogSUB (zz+2)))ELSE ohnefehler:=FALSE ; +LEAVE ermittlestdenlehrerFI .ermittlelehreristundimfach:inittupel( +dnrlehrveranstaltungen);putwert(fnrlvparaphe,paraphe);statleseschleife( +ixlvsjhjpar,schj,schhj,fnrlvsj,fnrlvhj,PROC holelehrerstden).END PROC +ermittlestdenlehrer;PROC holelehrerstden(BOOL VAR b):TEXT VAR lvfach:=text( +wert(fnrlvfachkennung),laengefach);IF wert(fnrlvsj)<>schjCOR wert(fnrlvhj)<> +schhjCOR wert(fnrlvparaphe)<>parapheTHEN b:=TRUE ELSE IF inallefaecher(lvfach +)THEN lehrerimfachINCR intwert(fnrlvwochenstd)FI ;lehreristINCR intwert( +fnrlvwochenstd)FI END PROC holelehrerstden;BOOL PROC inallefaecher(TEXT +CONST fach):pos(allefaecher,trenner+text(fach,laengefach)+trenner)>0END PROC +inallefaecher;PROC lehrbeflehrerholen(BOOL VAR b):IF dbstatus<>okCOR text( +wert(fnrlbfach),laengefach)<>lvTHEN b:=TRUE ELSE lehrbeflehrerCAT wert( +fnrlbparaphe);lehrbeflehrerCAT trenner;FI END PROC lehrbeflehrerholen;PROC +allestdenberechnen:INT VAR i;fachsoll:=0;fachist:=0;FOR iFROM 1UPTO length( +allefaecher)DIV (laengefach+1)REP fach:=(subtext(allefaecher,(i-1)*( +laengefach+1)+2,i*(laengefach+1)));berechnestdenzufachPER END PROC +allestdenberechnen;PROC berechnestdenzufach:inittupel(dnrlehrveranstaltungen) +;putwert(fnrlvfachkennung,fach);statleseschleife(ixlvsjhjkenn,schj,schhj, +fnrlvsj,fnrlvhj,PROC stdenzufach)END PROC berechnestdenzufach;PROC +stdenzufach(BOOL VAR b):TEXT VAR lvfach:=text(wert(fnrlvfachkennung), +laengefach);INT VAR lvstd;IF wert(fnrlvsj)<>schjCOR wert(fnrlvhj)<>schhjCOR +lvfach>fachTHEN b:=TRUE ELSE IF lvfach=fachTHEN lvstd:=intwert(fnrlvwochenstd +);fachsollINCR lvstd;IF wert(fnrlvparaphe)<>""THEN fachistINCR lvstdFI FI FI +END PROC stdenzufach;TEXT PROC allefaecherzu(TEXT CONST bez):suchpos:=1; +aktpos:=1;WHILE aktpos>0REP aktpos:=pos(fachgrbez,bez,suchpos);IF aktpos>0 +THEN allefaecherCAT (fachbezSUB (aktpos+1));allefaecherCAT (fachbezSUB ( +aktpos+2));allefaecherCAT trenner;suchpos:=aktpos+1;FI PER ;allefaecherEND +PROC allefaecherzu;PROC uvukvorjparaphe:IF aenderungskennzeichen= +kennzeichnungaktTHEN standardmeldung(meldg19,"");return(1)ELSE aktzeile:=( +infeld-2)DIV 9+1;jgst:=int(text(standardmaskenfeld(aktzeile*9-6),laengejgst)) +;lv:=dbinh(aktzeile).fakenn;IF geplschhj="1"CAND jgst=5THEN standardmeldung( +meldg19,"");return(1);LEAVE uvukvorjparapheFI ;suchedbsatzundausgabeFI . +suchedbsatzundausgabe:savetupel(index,sicherungstupel);saveupdateposition( +index);IF index<>dnrlehrveranstaltungenTHEN changeindex;FI ;inittupel( +dnrlehrveranstaltungen);putwert(fnrlvsj,aktschj);putwert(fnrlvhj,aktschhj); +IF aktschhj="2"CAND jgst>5THEN putintwert(fnrlvjgst,jgst-1);ELSE putintwert( +fnrlvjgst,jgst)FI ;putwert(fnrlvfachkennung,lv);search(dnrlehrveranstaltungen +,TRUE );IF dbstatus<>okTHEN standardmeldung(meldg18,"Schulj. "+aktschhj+". "+ +text(aktschj,2)+"/"+subtext(aktschj,3)+" Lv. "+text(jgst)+lv+ausgparam); +return(1);LEAVE uvukvorjparapheELSE standardmaskenfeld(wert(fnrlvparaphe), +aktzeile*9-5);standardfelderausgebenFI ;IF index<>dnrlehrveranstaltungenTHEN +changeindex;FI ;restoreupdateposition(index);restoretupel(index, +sicherungstupel);return(1).END PROC uvukvorjparaphe;PROC faecherholen(BOOL +VAR b):IF dbstatus<>okTHEN b:=TRUE ELSE fachbezCAT text(wert(fnrffach), +laengefach);fachbezCAT trenner;fachgrbezCAT text(wert(fnrffachgrp),laengefach +);fachgrbezCAT trennerFI END PROC faecherholen;PROC spezcat(BOOL VAR b):TEXT +VAR zwsp:="";IF i=100THEN fachkatalogCAT wert(fnrffach)+trenner;ELIF i=101 +THEN jgstsugrp:="";klgrkatalogCAT wert(fnrkgklassengrp)+trenner; +klgrpruefkatalogCAT wert(fnrkgklassengrp)+trenner;jgstsugrp:=wert( +fnrkgschuelergrp);stellejgstzurklgrfest;ELIF i=105THEN IF wert(fnrsgrphj)= +aktschhjCAND dbstatus=okTHEN aktschgrkatalogCAT wert(fnrsgrpjgst)+wert( +fnrsgrpkennung)+trenner;ELIF dbstatus<>okTHEN b:=TRUE FI ELIF i=106THEN IF +wert(fnrsgrphj)=geplschhjCAND dbstatus=okTHEN geplschgrkatalogCAT wert( +fnrsgrpjgst)+wert(fnrsgrpkennung)+trenner;ELIF dbstatus<>okTHEN b:=TRUE FI +ELIF i=102THEN rgrkatalogCAT wert(fnrrgraumgrp)+trenner;ELIF i=103THEN zwsp:= +wert(fnrlparaphe)+trenner;parkatalogCAT zwsp;sollstdkatalogCAT text(wert( +fnrlsollstd),length(zwsp))ELIF i=104THEN IF wert(fnrschlsachgebiet)=raTHEN +rgrkatalogCAT wert(fnrschlschluessel)+trenner;ELIF wert(fnrschlsachgebiet)>ra +THEN b:=TRUE FI FI .stellejgstzurklgrfest:FOR zzFROM 1UPTO length(jgstsugrp) +DIV 6REP klgrpruefkatalogCAT subtext(jgstsugrp,zz*6-5,zz*6-4)PER ; +klgrpruefkatalogCAT trenner.END PROC spezcat;END PACKET +uvundkopplungenbearbeiten; + -- cgit v1.2.3