app/baisy/2.2.1-schulis/src/allgemeine grundfunktionen

Raw file
Back to index

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