summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/4.zeitwuensche bearbeiten
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/4.zeitwuensche bearbeiten')
-rw-r--r--app/schulis/2.2.1/src/4.zeitwuensche bearbeiten243
1 files changed, 243 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/4.zeitwuensche bearbeiten b/app/schulis/2.2.1/src/4.zeitwuensche bearbeiten
new file mode 100644
index 0000000..c52a4a9
--- /dev/null
+++ b/app/schulis/2.2.1/src/4.zeitwuensche bearbeiten
@@ -0,0 +1,243 @@
+PACKET zeitwuenschebearbeitenDEFINES zeitwuenschebearbeiten,
+zeitwuenschekopieren,zeitwuenschespeichern:LET bearbmaske=
+"ms zeitwuensche bearb",zulgewichte="�-3�-2�-1�-0�+0�+1�+2�+3�",fldkzlehrer=2
+,fldparaphe=3,fldkzsugrup=4,fldjgst=5,fldkenn=6,fldkzraeume=7,fldraeume=8,
+fldkzfaecher=9,fldfaecher=10,fldkzkopp=11,fldkopp=12,fldhjkz=13,bearbfldbez=2
+,bearbfldmo1=3,bearbfldmo12=14,bearbflddi12=26,bearbfldmi12=38,bearbflddo12=
+50,bearbfldfr12=62,bearbfldsa6=68,bearbfldutanz=69,bearbfldutgew=70,
+bearbfldvmanz=71,bearbfldvmgew=72,bearbfldnmanz=73,bearbfldnmgew=74,posanzut=
+1,posgewut=3,posanzvm=4,posgewvm=6,posanznm=7,posgewnm=9,laengeallezeitw=132,
+laengejgst=2,laengeparaphe=4,laengefach=2,laengesugrup=6,laengesugrupkenn=4,
+laengeraum=4,laengebezfeld=22,meldungwarten=69,meldungobjektunbek=55,
+meldungfalschekz=56,meldungkeinelehrer=337,meldungkeinelv=321,
+meldungkeinefaecher=68,meldungkeinesugrup=332,meldungkeineraeume=365,
+meldungwertfalsch=34,meldungwertfehlt=129,meldungpruefen=329,meldungspeichern
+=50,meldungnichtsp=63,trenner="�",leererunbestwunsch=" ",
+raumkenndaten="c02 raeume",schuljahr="Schuljahr",halbjahr="Schulhalbjahr",
+kennpar="P",kennsugrup="S",kennraum="R",kennfach="F",kennkopp="K",minus="-",
+plus="+";INT VAR i;INT VAR prueffeld:=2,fall,objektlaenge:=0,anztage,anzvm,
+anznm,dbstatusbeimholen,hjkenn:=-1;TEXT VAR schj:="",schhj:="",hjkennz:="",
+startobjekt,allefaecher:=trenner,alleraeume:=trenner,alleparaphen:=trenner,
+allesugruppen:=trenner;TEXT VAR bearbfolge:="",bezug,bsbestzw:="",bsunbestzw
+:="",dbbestzw:="",dbunbestzw:="";TEXT VAR leererbestwunsch:=
+" "+
+" ";LET
+logbucheintrag="Anw. 4.1.4 Zeitwünsche Lehrer geändert";PROC
+zeitwuenschebearbeiten:standardmeldung(meldungwarten,"");
+pruefeingmaskeundsetzewerte;standardstartproc(bearbmaske);
+standardkopfmaskeaktualisieren(text(vergleichsknoten)+" "+schhj+"."+" "+text(
+schj,2)+"/"+subtext(schj,3));zeitwuenscheausgeben(startobjekt,bezug);
+standardnproc.pruefeingmaskeundsetzewerte:hjkennz:=standardmaskenfeld(fldhjkz
+);IF (hjkenn=0CAND hjkennz="")COR (hjkenn=1CAND hjkennz<>"")COR hjkenn=-1
+THEN ermittlehalbjahrFI ;IF standardmaskenfeld(fldkzlehrer)<>""THEN fall:=
+fldkzlehrer;bezug:=kennpar;IF restleer(fall)THEN startobjekt:=
+standardmaskenfeld(fldparaphe);IF startobjekt<>""THEN startobjekt:=text(
+startobjekt,laengeparaphe);IF bestandsfehlerTHEN IF alleparaphen<>trenner
+THEN standardmeldung(meldungobjektunbek,"");infeld(fall+1);return(1)FI ;
+LEAVE zeitwuenschebearbeitenELSE bearbfolge:=subtext(alleparaphen,pos(
+alleparaphen,trenner+startobjekt+trenner)+laengeparaphe+2);FI ;ELSE IF
+alleparaphen=trennerTHEN holalleparaphenFI ;IF alleparaphen=trennerTHEN
+standardmeldung(meldungkeinelehrer,"");infeld(fall+1);return(1);LEAVE
+zeitwuenschebearbeitenELSE bearbfolge:=subtext(alleparaphen,laengeparaphe+3);
+startobjekt:=subtext(alleparaphen,2,2+laengeparaphe-1)FI ;FI ;objektlaenge:=
+laengeparaphe;ELSE standardmeldung(meldungfalschekz,"");infeld(prueffeld);
+return(1);LEAVE zeitwuenschebearbeitenFI ELIF standardmaskenfeld(fldkzsugrup)
+<>""THEN fall:=fldkzsugrup;bezug:=kennsugrup;IF restleer(fall)THEN
+objektlaenge:=laengejgst+laengesugrupkenn;startobjekt:=standardmaskenfeld(
+fldjgst);IF startobjekt<>""THEN startobjekt:=jgstaufber(startobjekt);
+startobjektCAT text(standardmaskenfeld(fldkenn),laengesugrupkenn);IF
+bestandsfehlerTHEN IF allesugruppen<>trennerTHEN standardmeldung(
+meldungobjektunbek,"");infeld(fall+1);return(1)FI ;LEAVE
+zeitwuenschebearbeitenELSE bearbfolge:=subtext(allesugruppen,pos(
+allesugruppen,trenner+startobjekt+trenner)+objektlaenge+2);FI ;ELSE IF
+allesugruppen=trennerTHEN holallesugruppen;FI ;IF allesugruppen=trennerTHEN
+standardmeldung(meldungobjektunbek,"");infeld(fall+1);return(1);LEAVE
+zeitwuenschebearbeitenELSE bearbfolge:=subtext(allesugruppen,laengesugrup+3);
+startobjekt:=subtext(allesugruppen,2,2+laengesugrup-1)FI ;FI ;ELSE
+standardmeldung(meldungfalschekz,"");infeld(prueffeld);return(1);LEAVE
+zeitwuenschebearbeitenFI ELIF standardmaskenfeld(fldkzraeume)<>""THEN fall:=
+fldkzraeume;bezug:=kennraum;IF restleer(fall)THEN startobjekt:=
+standardmaskenfeld(fldraeume);IF startobjekt<>""THEN startobjekt:=text(
+startobjekt,laengeraum);IF bestandsfehlerTHEN IF alleraeume<>trennerTHEN
+standardmeldung(meldungobjektunbek,"");infeld(fall+1);return(1)FI ;LEAVE
+zeitwuenschebearbeitenELSE bearbfolge:=subtext(alleraeume,pos(alleraeume,
+trenner+startobjekt+trenner)+laengeraum+2);FI ;ELSE IF alleraeume=trenner
+THEN holalleraeumeFI ;IF alleraeume=trennerTHEN standardmeldung(
+meldungkeineraeume,"");infeld(fall+1);return(1);LEAVE zeitwuenschebearbeiten
+ELSE bearbfolge:=subtext(alleraeume,laengeraum+3);startobjekt:=subtext(
+alleraeume,2,2+laengeraum-1)FI ;FI ;objektlaenge:=laengeraum;ELSE
+standardmeldung(meldungfalschekz,"");infeld(prueffeld);return(1);LEAVE
+zeitwuenschebearbeitenFI ELIF standardmaskenfeld(fldkzfaecher)<>""THEN fall:=
+fldkzfaecher;bezug:=kennfach;IF restleer(fall)THEN startobjekt:=
+standardmaskenfeld(fldfaecher);IF startobjekt<>""THEN startobjekt:=text(
+startobjekt,laengefach);IF bestandsfehlerTHEN IF allefaecher<>trennerTHEN
+standardmeldung(meldungobjektunbek,"");infeld(fall+1);return(1);FI ;LEAVE
+zeitwuenschebearbeitenELSE bearbfolge:=subtext(allefaecher,pos(allefaecher,
+trenner+startobjekt+trenner)+laengefach+2);FI ;ELSE IF allefaecher=trenner
+THEN holallefaecherFI ;IF allefaecher=trennerTHEN standardmeldung(
+meldungkeinefaecher,"");infeld(fall+1);return(1);LEAVE zeitwuenschebearbeiten
+ELSE bearbfolge:=subtext(allefaecher,laengefach+3);startobjekt:=subtext(
+allefaecher,2,2+laengefach-1)FI ;FI ;objektlaenge:=laengefach;ELSE
+standardmeldung(meldungfalschekz,"");infeld(prueffeld);return(1);LEAVE
+zeitwuenschebearbeitenFI ELIF standardmaskenfeld(fldkzkopp)<>""THEN fall:=
+fldkzkopp;bezug:=kennkopp;IF restleer(fall)THEN startobjekt:=
+standardmaskenfeld(fldkopp);IF startobjekt<>""THEN IF bestandsfehlerTHEN IF
+wert(fnrlvsj)=schjCAND wert(fnrlvhj)=schhjTHEN standardmeldung(
+meldungobjektunbek,"");infeld(fall+1);return(1)FI ;LEAVE
+zeitwuenschebearbeitenFI ;ELSE holestartobjektFI ;ELSE standardmeldung(
+meldungfalschekz,"");infeld(prueffeld);return(1);LEAVE zeitwuenschebearbeiten
+FI ELSE standardmeldung(meldungwertfehlt,"");infeld(fldkzlehrer);return(1);
+LEAVE zeitwuenschebearbeitenFI .ermittlehalbjahr:allesugruppen:=trenner;schhj
+:=schulkenndatum(halbjahr);schj:=schulkenndatum(schuljahr);IF hjkennz=""THEN
+geplanteshjundsjberechnen(schhj,schj);hjkenn:=1ELSE hjkenn:=0FI .
+holestartobjekt:inittupel(dnrlehrveranstaltungen);putwert(fnrlvsj,schj);
+putwert(fnrlvhj,schhj);putwert(fnrlvkopplung,"");search(ixlvsjhjkopp,FALSE );
+IF wert(fnrlvsj)=schjCAND wert(fnrlvhj)=schhjCAND dbstatus<2THEN startobjekt
+:=wert(fnrlvkopplung)ELSE standardmeldung(meldungkeinelv,"");infeld(fall);
+return(1);LEAVE zeitwuenschebearbeitenFI .END PROC zeitwuenschebearbeiten;
+PROC zeitwuenscheausgeben(TEXT CONST objekt,bez):IF fall=fldkzlehrerTHEN
+standardmaskenfeld(text("Lehrer: "+objekt,laengebezfeld),bearbfldbez)ELIF
+fall=fldkzsugrupTHEN standardmaskenfeld(text("Schülergruppe: "+startobjekt,
+laengebezfeld),bearbfldbez)ELIF fall=fldkzraeumeTHEN standardmaskenfeld(text(
+"Raum: "+objekt,laengebezfeld),bearbfldbez)ELIF fall=fldkzfaecherTHEN
+standardmaskenfeld(text("Fach: "+objekt,laengebezfeld),bearbfldbez)ELSE
+standardmaskenfeld(text("Kopplung: "+objekt,laengebezfeld),bearbfldbez)FI ;
+infeld(1);loeschebildschirm;zeitwunschholen;IF dbstatus=0THEN
+zeitwunschausgebenELSE setzedbwerteFI ;standardfelderausgeben;infeld(
+bearbfldmo1).loeschebildschirm:FOR iFROM bearbfldmo1UPTO bearbfldnmgewREP
+standardmaskenfeld("",i)PER .zeitwunschholen:inittupel(dnrzeitwuensche);
+putwert(fnrzwsj,schj);putwert(fnrzwhj,schhj);putwert(fnrzwbezug,bez);putwert(
+fnrzwbezugsobjekt,compress(objekt));search(dnrzeitwuensche,TRUE );
+dbstatusbeimholen:=dbstatus.zeitwunschausgeben:dbbestzw:=wert(
+fnrzwbestimmtewuensche);dbunbestzw:=wert(fnrzwunbestimmtewuensche);
+gibbestwuenscheaus(dbbestzw);gibunbestwuenscheaus(dbunbestzw).setzedbwerte:
+dbbestzw:=leererbestwunsch;dbunbestzw:=leererunbestwunsch.END PROC
+zeitwuenscheausgeben;PROC gibbestwuenscheaus(TEXT CONST bestwunsch):INT VAR
+suchpos:=1;TEXT VAR wunsch:="";WHILE suchpos<>0REP suchpos:=pos(bestwunsch,
+minus,suchpos);IF suchpos<>0THEN wunsch:=subtext(bestwunsch,suchpos,suchpos+1
+);standardmaskenfeld(wunsch,suchposDIV 2+3);suchposINCR 1FI ;PER ;suchpos:=1;
+WHILE suchpos<>0REP suchpos:=pos(bestwunsch,plus,suchpos);IF suchpos<>0THEN
+wunsch:=subtext(bestwunsch,suchpos,suchpos+1);standardmaskenfeld(wunsch,
+suchposDIV 2+3);suchposINCR 1FI ;PER .END PROC gibbestwuenscheaus;PROC
+gibunbestwuenscheaus(TEXT CONST unbestwunsch):TEXT VAR datum;IF unbestwunsch
+<>leererunbestwunschTHEN datum:=unbestwunschSUB posanzut;IF datum<>" "THEN
+standardmaskenfeld(datum,bearbfldutanz);FI ;datum:=unbestwunschSUB posgewut;
+IF datum<>" "THEN standardmaskenfeld(datum,bearbfldutgew);FI ;datum:=
+unbestwunschSUB posanzvm;IF datum<>" "THEN standardmaskenfeld(datum,
+bearbfldvmanz)FI ;datum:=unbestwunschSUB posgewvm;IF datum<>" "THEN
+standardmaskenfeld(datum,bearbfldvmgew)FI ;datum:=unbestwunschSUB posanznm;
+IF datum<>" "THEN standardmaskenfeld(datum,bearbfldnmanz)FI ;datum:=
+unbestwunschSUB posgewnm;IF datum<>" "THEN standardmaskenfeld(datum,
+bearbfldnmgew)FI ;FI END PROC gibunbestwuenscheaus;BOOL PROC bestandsfehler:
+IF fall=fldkzlehrerTHEN pruefparapheELIF fall=fldkzsugrupTHEN pruefsugrup
+ELIF fall=fldkzraeumeTHEN pruefraumELIF fall=fldkzfaecherTHEN prueffachELIF
+fall=fldkzkoppTHEN pruefkoppELSE FALSE FI .pruefparaphe:IF alleparaphen=
+trennerTHEN holalleparaphen;IF alleparaphen=trennerTHEN standardmeldung(
+meldungkeinelehrer,"");return(1);LEAVE bestandsfehlerWITH TRUE FI FI ;pos(
+alleparaphen,trenner+startobjekt+trenner)=0.pruefsugrup:IF allesugruppen=
+trennerTHEN holallesugruppen;IF allesugruppen=trennerTHEN standardmeldung(
+meldungkeinesugrup,"");return(1);LEAVE bestandsfehlerWITH TRUE FI FI ;pos(
+allesugruppen,trenner+startobjekt+trenner)=0.pruefraum:IF alleraeume=trenner
+THEN holalleraeume;IF alleraeume=trennerTHEN standardmeldung(
+meldungkeineraeume,"");return(1);LEAVE bestandsfehlerWITH TRUE FI FI ;pos(
+alleraeume,trenner+startobjekt+trenner)=0.prueffach:IF allefaecher=trenner
+THEN holallefaecher;IF allefaecher=trennerTHEN standardmeldung(
+meldungkeinefaecher,"");return(1);LEAVE bestandsfehlerWITH TRUE FI FI ;pos(
+allefaecher,trenner+startobjekt+trenner)=0.pruefkopp:inittupel(
+dnrlehrveranstaltungen);putwert(fnrlvsj,schj);putwert(fnrlvhj,schhj);putwert(
+fnrlvkopplung,startobjekt);search(ixlvsjhjkopp,TRUE );dbstatus<>ok.END PROC
+bestandsfehler;PROC holalleparaphen:inittupel(dnrlehrer);statleseschleife(
+dnrlehrer,"","",fnrlparaphe,fnrlfamname,PROC lehrer).END PROC holalleparaphen
+;PROC holalleraeume:inittupel(dnrschluessel);statleseschleife(dnrschluessel,
+raumkenndaten,"",fnrschlsachgebiet,fnrschlschluessel,PROC raeume).END PROC
+holalleraeume;PROC holallesugruppen:inittupel(dnraktschuelergruppen);
+statleseschleife(dnraktschuelergruppen,schj,schhj,fnrsgrpsj,fnrsgrphj,PROC
+sugruppen).END PROC holallesugruppen;PROC holallefaecher:inittupel(dnrfaecher
+);statleseschleife(dnrfaecher,"","",fnrffach,fnrffachbez,PROC faecher).END
+PROC holallefaecher;PROC lehrer(BOOL VAR b):IF dbstatus<>0THEN b:=TRUE ELSE
+alleparaphenCAT text(wert(fnrlparaphe),laengeparaphe);alleparaphenCAT trenner
+FI END PROC lehrer;PROC sugruppen(BOOL VAR b):IF dbstatus<>0COR wert(
+fnrsgrpsj)<>schjCOR wert(fnrsgrphj)<>schhjTHEN b:=TRUE ELSE allesugruppenCAT
+jgstaufber(wert(fnrsgrpjgst));allesugruppenCAT text(wert(fnrsgrpkennung),
+laengesugrupkenn);allesugruppenCAT trennerFI END PROC sugruppen;PROC raeume(
+BOOL VAR b):IF dbstatus<>0COR wert(fnrschlsachgebiet)>raumkenndatenTHEN b:=
+TRUE ELSE alleraeumeCAT text(wert(fnrschlschluessel),laengeraum);alleraeume
+CAT trennerFI END PROC raeume;PROC faecher(BOOL VAR b):IF dbstatus<>0THEN b:=
+TRUE ELSE allefaecherCAT text(wert(fnrffach),laengefach);allefaecherCAT
+trennerFI END PROC faecher;BOOL PROC restleer(INT CONST fall):IF fall=
+fldkzlehrerTHEN FOR iFROM fldkzsugrupUPTO fldkoppREP IF standardmaskenfeld(i)
+<>""THEN prueffeld:=i;LEAVE restleerWITH FALSE FI PER ELIF fall=fldkzsugrup
+THEN IF standardmaskenfeld(fldkzlehrer)<>""THEN prueffeld:=fldkzlehrer;LEAVE
+restleerWITH FALSE FI ;IF standardmaskenfeld(fldparaphe)<>""THEN prueffeld:=
+fldparaphe;LEAVE restleerWITH FALSE FI ;FOR iFROM fldkzraeumeUPTO fldkoppREP
+IF standardmaskenfeld(i)<>""THEN prueffeld:=i;LEAVE restleerWITH FALSE FI
+PER ELIF fall=fldkzraeumeCOR fall=fldkzfaecherTHEN FOR iFROM fldkzlehrerUPTO
+fall-1REP IF standardmaskenfeld(i)<>""THEN prueffeld:=i;LEAVE restleerWITH
+FALSE FI PER ;FOR iFROM fall+2UPTO fldkoppREP IF standardmaskenfeld(i)<>""
+THEN prueffeld:=i;LEAVE restleerWITH FALSE FI PER ;ELIF fall=fldkzkoppTHEN
+FOR iFROM fldkzlehrerUPTO fldfaecherREP IF standardmaskenfeld(i)<>""THEN
+prueffeld:=i;LEAVE restleerWITH FALSE FI PER ;FI ;TRUE END PROC restleer;
+PROC zeitwuenschekopieren:INT VAR aktfld:=infeld;TEXT VAR wunsch;IF aktfld>=
+bearbfldmo1CAND aktfld<=bearbfldsa6THEN kopierfeldinhaltaufrestzeileFI ;
+return(1).kopierfeldinhaltaufrestzeile:wunsch:=standardmaskenfeld(aktfld);IF
+aktfld<=bearbfldmo12THEN FOR iFROM aktfldUPTO bearbfldmo12REP
+standardmaskenfeld(wunsch,i)PER ELIF aktfld<=bearbflddi12THEN FOR iFROM
+aktfldUPTO bearbflddi12REP standardmaskenfeld(wunsch,i)PER ELIF aktfld<=
+bearbfldmi12THEN FOR iFROM aktfldUPTO bearbfldmi12REP standardmaskenfeld(
+wunsch,i)PER ELIF aktfld<=bearbflddo12THEN FOR iFROM aktfldUPTO bearbflddo12
+REP standardmaskenfeld(wunsch,i)PER ELIF aktfld<=bearbfldfr12THEN FOR iFROM
+aktfldUPTO bearbfldfr12REP standardmaskenfeld(wunsch,i)PER ELSE FOR iFROM
+aktfldUPTO bearbfldsa6REP standardmaskenfeld(wunsch,i)PER FI ;
+standardfelderausgeben;infeld(aktfld).END PROC zeitwuenschekopieren;PROC
+zeitwuenschespeichern(BOOL CONST speichern):TEXT VAR zw:="";BOOL VAR
+aenderung:=FALSE ;IF speichernTHEN standardmeldung(meldungpruefen,"");anztage
+:=0;anzvm:=0;anznm:=0;bsbestzw:="";bsunbestzw:="";FOR iFROM bearbfldmo1UPTO
+bearbfldsa6REP zw:=standardmaskenfeld(i);IF zw=""THEN bsbestzwCAT " "ELIF zw
+="-0"THEN bsbestzwCAT " "ELIF zw="+0"THEN bsbestzwCAT " "ELSE bsbestzwCAT
+zwFI PER ;FOR iFROM bearbfldutanzUPTO bearbfldnmgewREP zw:=standardmaskenfeld
+(i);IF length(zw)>1THEN infeld(i);fehlermeldungFI ;IF iMOD 2=0THEN
+bearbeitegewichtELSE bearbeiteanzahlFI PER ;IF dbbestzw<>bsbestzwTHEN
+aenderung:=TRUE ;pruefebestzwFI ;IF dbunbestzw<>bsunbestzwTHEN aenderung:=
+TRUE ;pruefeunbestzwFI ;IF aenderungTHEN standardmeldung(meldungspeichern,"")
+;logeintrag(logbucheintrag);datenspeichernFI ;ELSE standardmeldung(
+meldungnichtsp,"")FI ;naechsterbildschirm.bearbeitegewicht:IF zw=""THEN
+bsunbestzwCAT " "ELSE bsunbestzwCAT "-";bsunbestzwCAT zwFI .bearbeiteanzahl:
+IF zw=""THEN bsunbestzwCAT " "ELSE bsunbestzwCAT zwFI .pruefebestzw:i:=1;
+WHILE i<laengeallezeitwREP zw:=subtext(bsbestzw,i,i+1);IF subtext(dbbestzw,i,
+i+1)<>zwTHEN pruefeeintragFI ;iINCR 2PER .pruefeeintrag:IF zw=" "THEN LEAVE
+pruefeeintragFI ;IF pos(zulgewichte,trenner+zw+trenner)=0THEN infeld(iDIV 2+3
+);fehlermeldungFI .pruefeunbestzw:IF eingabefalsch(1,1,5)THEN infeld(
+bearbfldutanz);fehlermeldungFI ;IF eingabefalsch(4,1,6)THEN infeld(
+bearbfldvmanz);fehlermeldungFI ;IF eingabefalsch(7,1,5)THEN infeld(
+bearbfldnmanz);fehlermeldungFI ;IF eingabefalsch(3,1,3)THEN infeld(
+bearbfldutgew);fehlermeldungFI ;IF eingabefalsch(6,1,3)THEN infeld(
+bearbfldvmgew);fehlermeldungFI ;IF eingabefalsch(9,1,3)THEN infeld(
+bearbfldnmgew);fehlermeldungFI ;IF anztage+anzvm>6THEN infeld(bearbfldutanz);
+fehlermeldungnichtmöglichELIF anztage+anznm>6THEN infeld(bearbfldutanz);
+fehlermeldungnichtmöglichELIF anztage*2+anzvm+anznm>11THEN infeld(
+bearbfldutanz);fehlermeldungnichtmöglichFI ;FOR iFROM 1UPTO 3REP IF (
+bsunbestzwSUB (i*3-2))=" "CAND (bsunbestzwSUB (i*3))<>" "THEN infeld(
+bearbfldutanz+((i-1)*2));fehlermeldungfehlenderwertELIF (bsunbestzwSUB (i*3-2
+))<>" "CAND (bsunbestzwSUB (i*3))=" "THEN infeld(bearbfldutgew+((i-1)*2));
+fehlermeldungfehlenderwertFI PER .fehlermeldungnichtmöglich:return(1);
+standardmeldung(meldungfalschekz,"");LEAVE zeitwuenschespeichern.
+fehlermeldungfehlenderwert:return(1);standardmeldung(meldungwertfehlt,"");
+LEAVE zeitwuenschespeichern.fehlermeldung:return(1);standardmeldung(
+meldungwertfalsch,"");LEAVE zeitwuenschespeichern.naechsterbildschirm:IF fall
+=fldkzkoppTHEN WHILE wert(fnrlvkopplung)=startobjektCAND dbstatus<>3REP succ(
+ixlvsjhjkopp);PER ;IF wert(fnrlvsj)=schjCAND wert(fnrlvhj)=schhjCAND dbstatus
+<>3THEN startobjekt:=wert(fnrlvkopplung);zeitwuenscheausgeben(startobjekt,
+bezug);return(1)ELSE enter(2)FI ELIF bearbfolge=""THEN enter(2)ELSE
+startobjekt:=text(bearbfolge,objektlaenge);bearbfolge:=subtext(bearbfolge,
+objektlaenge+2);zeitwuenscheausgeben(startobjekt,bezug);return(1)FI .
+datenspeichern:putwert(fnrzwbestimmtewuensche,bsbestzw);putwert(
+fnrzwunbestimmtewuensche,bsunbestzw);IF dbstatusbeimholen=0THEN update(
+dnrzeitwuensche)ELSE insert(dnrzeitwuensche)FI ;IF dbstatus<>0THEN
+fehlermeldungbeimspeichernFI .fehlermeldungbeimspeichern:return(1);
+standardmeldung(meldungnichtsp,"");LEAVE zeitwuenschespeichern.END PROC
+zeitwuenschespeichern;BOOL PROC eingabefalsch(INT CONST charpos,ugr,ogr):
+TEXT VAR datum:=bsunbestzwSUB charpos;INT VAR dat;IF datum=" "THEN FALSE
+ELSE dat:=int(datum);IF charpos=1THEN anztage:=datELIF charpos=4THEN anzvm:=
+datELIF charpos=7THEN anznm:=datFI ;IF lastconversionokTHEN dat<ugrCOR dat>
+ogrELSE TRUE FI FI END PROC eingabefalsch;END PACKET zeitwuenschebearbeiten
+