app/schulis/2.2.1/src/4.zeitwuensche bearbeiten

Raw file
Back to index

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