1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
PACKET schulkenndatenbearbeitenDEFINES schulkenndatenbearbeiten,
schulkenndatenspeichern:LET maske="ms erf schulkenndaten";LET sachgebiet=
"c02 schulkenndaten";LET schuljahr="Schuljahr",schulhalbjahr="Schulhalbjahr",
anfangschulhj="Anfang Schulhalbjahr",endeschulhj="Ende Schulhalbjahr",
schulname="Schulname",schulleiter="Schulleiter",schulort="Schulort",
schulstrasse="Schulstraße",schulrufnummer="Schulrufnummer";LET fnrschuljahr=2
,fnrschulhalbjahr=3,fnranfangschulhj=4,fnrendeschulhj=5,fnrschulname=6,
fnrschulleiter=7,fnrschulort=8,fnrschulstrasse=9,fnrschulrufnummer=10;LET
melddatenwerdengespeichert=50,meldfehlendesdatum=52,melddatennichtspeichern=
63,meldkeinupdatemoeglich=73,meldungueltigesdatum=157,meldungueltigeangabe=
162;INT VAR ifnr;LET maxfelder=10;ROW maxfelderTEXT VAR alterwert;LET
laengeschuljahr=4;INT VAR erstesjahr,zweitesjahr;LET zwischenpunkt=".",
logbucheintrag="Anw. 10.3.1 Änderung an den Schulkenndaten";PROC
schulkenndatenbearbeiten:standardstartproc(maske);zeigeschulkenndaten;infeld(
fnrschuljahr);standardnproc.zeigeschulkenndaten:alterwert(fnrschuljahr):=
schulkenndatum(schuljahr);alterwert(fnrschulhalbjahr):=schulkenndatum(
schulhalbjahr);alterwert(fnranfangschulhj):=kurzdatum(schulkenndatum(
anfangschulhj));alterwert(fnrendeschulhj):=kurzdatum(schulkenndatum(
endeschulhj));alterwert(fnrschulname):=schulkenndatum(schulname);alterwert(
fnrschulleiter):=schulkenndatum(schulleiter);alterwert(fnrschulort):=
schulkenndatum(schulort);alterwert(fnrschulstrasse):=schulkenndatum(
schulstrasse);alterwert(fnrschulrufnummer):=schulkenndatum(schulrufnummer);
FOR ifnrFROM fnrschuljahrUPTO maxfelderREP standardmaskenfeld(alterwert(ifnr)
,ifnr)PER ;infeld(fnrschuljahr);standardfelderausgeben.END PROC
schulkenndatenbearbeiten;PROC schulkenndatenspeichern(BOOL CONST speichern):
IF NOT speichernTHEN standardmeldung(melddatennichtspeichern,"");pause(10);
return(2)ELSE INT VAR fehlerstatus:=0;dbstatus(0);pruefeplausibilitaet(
fehlerstatus);IF fehlerstatus=0THEN datenspeichern;logeintrag(logbucheintrag)
;IF dbstatus<>0THEN standardmeldung(meldkeinupdatemoeglich,"");return(1)ELSE
return(2)FI ELSE infeld(fehlerstatus);return(1)FI FI .datenspeichern:
standardmeldung(melddatenwerdengespeichert,"");IF standardmaskenfeld(
fnrschuljahr)<>alterwert(fnrschuljahr)THEN putwert(fnrschlsachgebiet,
sachgebiet);putwert(fnrschlschluessel,schuljahr);search(dnrschluessel,TRUE );
putwert(fnrschllangtext,standardmaskenfeld(fnrschuljahr));IF dbstatus=0THEN
update(dnrschluessel);IF dbstatus<>0THEN infeld(fnrschuljahr);LEAVE
datenspeichernFI ELSE insert(dnrschluessel)FI FI ;IF standardmaskenfeld(
fnrschulhalbjahr)<>alterwert(fnrschulhalbjahr)THEN putwert(fnrschlsachgebiet,
sachgebiet);putwert(fnrschlschluessel,schulhalbjahr);search(dnrschluessel,
TRUE );putwert(fnrschllangtext,standardmaskenfeld(fnrschulhalbjahr));IF
dbstatus=0THEN update(dnrschluessel);IF dbstatus<>0THEN infeld(
fnrschulhalbjahr);LEAVE datenspeichernFI ELSE insert(dnrschluessel)FI FI ;IF
standardmaskenfeld(fnranfangschulhj)<>alterwert(fnranfangschulhj)THEN putwert
(fnrschlsachgebiet,sachgebiet);putwert(fnrschlschluessel,anfangschulhj);
search(dnrschluessel,TRUE );putwert(fnrschllangtext,langdatum(
standardmaskenfeld(fnranfangschulhj)));IF dbstatus=0THEN update(dnrschluessel
);IF dbstatus<>0THEN infeld(fnranfangschulhj);LEAVE datenspeichernFI ELSE
insert(dnrschluessel)FI FI ;IF standardmaskenfeld(fnrendeschulhj)<>alterwert(
fnrendeschulhj)THEN putwert(fnrschlsachgebiet,sachgebiet);putwert(
fnrschlschluessel,endeschulhj);search(dnrschluessel,TRUE );putwert(
fnrschllangtext,langdatum(standardmaskenfeld(fnrendeschulhj)));IF dbstatus=0
THEN update(dnrschluessel);IF dbstatus<>0THEN infeld(fnrendeschulhj);LEAVE
datenspeichernFI ELSE insert(dnrschluessel)FI FI ;IF standardmaskenfeld(
fnrschulname)<>alterwert(fnrschulname)THEN putwert(fnrschlsachgebiet,
sachgebiet);putwert(fnrschlschluessel,schulname);search(dnrschluessel,TRUE );
putwert(fnrschllangtext,standardmaskenfeld(fnrschulname));IF dbstatus=0THEN
update(dnrschluessel);IF dbstatus<>0THEN infeld(fnrschulname);LEAVE
datenspeichernFI ELSE insert(dnrschluessel)FI FI ;IF standardmaskenfeld(
fnrschulleiter)<>alterwert(fnrschulleiter)THEN putwert(fnrschlsachgebiet,
sachgebiet);putwert(fnrschlschluessel,schulleiter);search(dnrschluessel,TRUE
);putwert(fnrschllangtext,standardmaskenfeld(fnrschulleiter));IF dbstatus=0
THEN update(dnrschluessel);IF dbstatus<>0THEN infeld(fnrschulleiter);LEAVE
datenspeichernFI ELSE insert(dnrschluessel)FI FI ;IF standardmaskenfeld(
fnrschulort)<>alterwert(fnrschulort)THEN putwert(fnrschlsachgebiet,sachgebiet
);putwert(fnrschlschluessel,schulort);search(dnrschluessel,TRUE );putwert(
fnrschllangtext,standardmaskenfeld(fnrschulort));IF dbstatus=0THEN update(
dnrschluessel);IF dbstatus<>0THEN infeld(fnrschulort);LEAVE datenspeichernFI
ELSE insert(dnrschluessel)FI FI ;IF standardmaskenfeld(fnrschulstrasse)<>
alterwert(fnrschulstrasse)THEN putwert(fnrschlsachgebiet,sachgebiet);putwert(
fnrschlschluessel,schulstrasse);search(dnrschluessel,TRUE );putwert(
fnrschllangtext,standardmaskenfeld(fnrschulstrasse));IF dbstatus=0THEN update
(dnrschluessel);IF dbstatus<>0THEN infeld(fnrschulstrasse);LEAVE
datenspeichernFI ELSE insert(dnrschluessel)FI FI ;IF standardmaskenfeld(
fnrschulrufnummer)<>alterwert(fnrschulrufnummer)THEN putwert(
fnrschlsachgebiet,sachgebiet);putwert(fnrschlschluessel,schulrufnummer);
search(dnrschluessel,TRUE );putwert(fnrschllangtext,standardmaskenfeld(
fnrschulrufnummer));IF dbstatus=0THEN update(dnrschluessel);IF dbstatus<>0
THEN infeld(fnrschulrufnummer);LEAVE datenspeichernFI ELSE insert(
dnrschluessel)FI FI .END PROC schulkenndatenspeichern;PROC
pruefeplausibilitaet(INT VAR fstatus):TEXT VAR pruefwert;pruefwert:=
standardmaskenfeld(fnrschuljahr);IF length(pruefwert)<>laengeschuljahrTHEN
standardmeldung(meldungueltigeangabe,"");fstatus:=fnrschuljahr;LEAVE
pruefeplausibilitaetFI ;erstesjahr:=int(pruefwert);IF NOT lastconversionok
THEN standardmeldung(meldungueltigeangabe,"");fstatus:=fnrschuljahr;LEAVE
pruefeplausibilitaetELIF erstesjahr<0THEN standardmeldung(
meldungueltigeangabe,"");fstatus:=fnrschuljahr;LEAVE pruefeplausibilitaetFI ;
erstesjahr:=int(subtext(pruefwert,1,2));zweitesjahr:=int(subtext(pruefwert,3,
4));IF ((erstesjahr+1)MOD 100)<>zweitesjahrTHEN standardmeldung(
meldungueltigeangabe,"");fstatus:=fnrschuljahr;LEAVE pruefeplausibilitaetFI ;
IF standardmaskenfeld(fnrschulhalbjahr)<>"1"AND standardmaskenfeld(
fnrschulhalbjahr)<>"2"THEN standardmeldung(meldungueltigeangabe,"");fstatus:=
fnrschulhalbjahr;LEAVE pruefeplausibilitaetFI ;IF fehlerhaftesdatum(
standardmaskenfeld(fnranfangschulhj))THEN standardmeldung(
meldungueltigesdatum,"");fstatus:=fnranfangschulhj;LEAVE pruefeplausibilitaet
FI ;IF fehlerhaftesdatum(standardmaskenfeld(fnrendeschulhj))THEN
standardmeldung(meldungueltigesdatum,"");fstatus:=fnrendeschulhj;LEAVE
pruefeplausibilitaetFI ;IF subtext(standardmaskenfeld(fnrendeschulhj),5,6)<>
"00"AND NOT (datum(standardmaskenfeld(fnrendeschulhj))>datum(
standardmaskenfeld(fnranfangschulhj)))THEN standardmeldung(
meldungueltigesdatum,"");fstatus:=fnrendeschulhj;LEAVE pruefeplausibilitaet
FI ;IF standardmaskenfeld(fnrschulname)=""THEN standardmeldung(
meldfehlendesdatum,"");fstatus:=fnrschulname;LEAVE pruefeplausibilitaetFI .
END PROC pruefeplausibilitaet;BOOL PROC fehlerhaftesdatum(TEXT CONST
testdatum):datum(testdatum)=nildatumEND PROC fehlerhaftesdatum;TEXT PROC
kurzdatum(TEXT CONST langdatum):subtext(langdatum,1,2)+subtext(langdatum,4,5)
+subtext(langdatum,7,8)END PROC kurzdatum;TEXT PROC langdatum(TEXT CONST
kurzdatum):subtext(kurzdatum,1,2)+zwischenpunkt+subtext(kurzdatum,3,4)+
zwischenpunkt+subtext(kurzdatum,5,6)END PROC langdatum;END PACKET
schulkenndatenbearbeiten
|