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
|
PACKET allgemeinegrundfunktionenDEFINES statleseschleife,rechtstext,
aenderungsvermerksetzen,geplanteshjundsjberechnen,textnichtnull,jgstaufber,
eingabenummerisch:LET sgaenderung="c02 aenderungsvermerk",schlakt="aktuell",
schlgepl="geplant",blank=" ";PROC statleseschleife(INT CONST indexnummer,
TEXT CONST startschluessel1,startschluessel2,INT CONST feldnr1,feldnr2,PROC (
BOOL VAR )stataktion):vorbereitungen;leseschleife.vorbereitungen:LET
maxleseanzahl=10;BOOL VAR vorzeitigesende:=FALSE ;INT VAR anzahltupel;.
leseschleife:putwert(feldnr1,startschluessel1);putwert(feldnr2,
startschluessel2);search(indexnummer);IF dbstatus=0THEN einleseschleifeFI .
einleseschleife:zaehlen;WHILE NOT schlussREP anzahltupel:=maxleseanzahl;
multisucc(indexnummer,anzahltupel);stackdurchlaufPER ;.stackdurchlauf:IF
anzahltupel=0THEN dbstatus(1)ELSE WHILE anzahltupel<>0REP lesen;zaehlen;IF
vorzeitigesendeTHEN dbstatus(1);anzahltupel:=0FI ;PER FI .schluss:dbstatus<>0
.zaehlen:stataktion(vorzeitigesende).lesen:multisucc;anzahltupelDECR 1;.END
PROC statleseschleife;TEXT PROC rechtstext(TEXT CONST t,INT CONST laenge):((
laenge-length(t))*" ")+tEND PROC rechtstext;PROC aenderungsvermerksetzen(
TEXT CONST schlwert):IF schlwert<>schlaktCAND schlwert<>schlgeplTHEN LEAVE
aenderungsvermerksetzenFI ;inittupel(dnrschluessel);putwert(fnrschlsachgebiet
,sgaenderung);putwert(fnrschlschluessel,schlwert);search(dnrschluessel,TRUE )
;IF dbstatus=okTHEN putwert(fnrschllangtext,date+blank+timeofday);update(
dnrschluessel)ELSE putwert(fnrschlsachgebiet,sgaenderung);putwert(
fnrschlschluessel,schlwert);putwert(fnrschllangtext,date+blank+timeofday);
insert(dnrschluessel)FI END PROC aenderungsvermerksetzen;PROC
geplanteshjundsjberechnen(TEXT VAR halbjahr,schuljahr):TEXT VAR hilfe;IF
halbjahr="1"THEN halbjahr:="2";ELSE halbjahr:="1";schuljahr:=subtext(
schuljahr,3);hilfe:=text(int(schuljahr)+1);schuljahrCAT subtext("0"+hilfe,
LENGTH (hilfe))FI END PROC geplanteshjundsjberechnen;TEXT PROC textnichtnull(
TEXT CONST txt):TEXT VAR t:=txt;IF t=length(t)*"0"THEN t:=""FI ;tEND PROC
textnichtnull;TEXT PROC jgstaufber(TEXT CONST jgst):LET erstestellejgst="0",
maxsek1=10;INT VAR ijgst:=int(jgst);IF ijgst>=maxsek1THEN jgstELIF ijgst=0
THEN ""ELSE erstestellejgst+text(ijgst)FI END PROC jgstaufber;BOOL PROC
eingabenummerisch(TEXT CONST t):INT VAR lv;FOR lvFROM 1UPTO length(t)REP IF
pos("0123456789",tSUB lv)=0THEN LEAVE eingabenummerischWITH FALSE FI PER ;
TRUE END PROC eingabenummerisch;END PACKET allgemeinegrundfunktionen
|