summaryrefslogtreecommitdiff
path: root/app/baisy/2.2.1-schulis/src/plausipruefung
diff options
context:
space:
mode:
Diffstat (limited to 'app/baisy/2.2.1-schulis/src/plausipruefung')
-rw-r--r--app/baisy/2.2.1-schulis/src/plausipruefung88
1 files changed, 88 insertions, 0 deletions
diff --git a/app/baisy/2.2.1-schulis/src/plausipruefung b/app/baisy/2.2.1-schulis/src/plausipruefung
new file mode 100644
index 0000000..4b08653
--- /dev/null
+++ b/app/baisy/2.2.1-schulis/src/plausipruefung
@@ -0,0 +1,88 @@
+PACKET plausipruefungDEFINES pruefe,imschlbestand,imbestand:LET
+trennerfuerfeldwerte="�",dateinameschluessel="Schlüssel";PROC pruefe(INT
+CONST pruefart,TAG CONST maske,TEXT PROC (INT CONST )prueftext,INT CONST
+feldnummer,ug,og,TEXT CONST bestand,INT VAR fstatus):fstatus:=0;SELECT
+pruefartOF CASE 1:pruefefeldgefuellt(maske,PROC prueftext,feldnummer,fstatus)
+CASE 2:pruefenumerisch(maske,PROC prueftext,feldnummer,fstatus)CASE 3:
+pruefenumgrenzen(maske,PROC prueftext,feldnummer,ug,og,fstatus)CASE 4:
+pruefeimbestand(maske,PROC prueftext,feldnummer,bestand,fstatus)CASE 5:
+pruefealternativen(maske,PROC prueftext,feldnummer,ug,fstatus)CASE 6:
+pruefedatum(maske,PROC prueftext,feldnummer,fstatus)END SELECT .END PROC
+pruefe;PROC pruefefeldgefuellt(TAG CONST maske,TEXT PROC (INT CONST )eingabe,
+INT CONST fnr,INT VAR fstatus):LET fehlermeldungsnr=52;IF eingabe(fnr)=""
+THEN meldeauffaellig(maske,fehlermeldungsnr);fstatus:=fnrFI ;END PROC
+pruefefeldgefuellt;PROC pruefenumerisch(TAG CONST maske,TEXT PROC (INT CONST
+)eingabe,INT CONST fnr,INT VAR fstatus):LET fehlermeldungsnr=53;INT VAR type;
+TEXT VAR teiltext;scan(eingabe(fnr));nextsymbol(teiltext,type);IF type<>3
+THEN meldeauffaellig(maske,fehlermeldungsnr);fstatus:=fnrELSE nextsymbol(
+teiltext,type);IF type<>7THEN meldeauffaellig(maske,fehlermeldungsnr);fstatus
+:=fnrFI ;FI ;END PROC pruefenumerisch;PROC pruefenumgrenzen(TAG CONST maske,
+TEXT PROC (INT CONST )eingabe,INT CONST fnr,ug,og,INT VAR fstatus):LET
+fehlermeldungsnr=54;INT VAR inteingabe:=int(eingabe(fnr));IF inteingabe<ugOR
+inteingabe>ogTHEN meldeauffaellig(maske,fehlermeldungsnr);fstatus:=fnrFI ;
+END PROC pruefenumgrenzen;PROC pruefeimbestand(TAG CONST maske,TEXT PROC (
+INT CONST )eingabe,INT CONST fnr,TEXT CONST bestand,INT VAR fstatus):LET
+fehlermeldungsnr=55;BOOL VAR nichtimbestandgefunden;IF (bestandSUB 1)="c"
+THEN nichtimbestandgefunden:=NOT (imbestand(bestand+trennerfuerfeldwerte+
+eingabe(fnr),dateinameschluessel))ELSE nichtimbestandgefunden:=NOT (imbestand
+(eingabe(fnr),bestand))FI ;IF nichtimbestandgefundenTHEN meldeauffaellig(
+maske,fehlermeldungsnr);fstatus:=fnrFI .END PROC pruefeimbestand;PROC
+pruefealternativen(TAG CONST maske,TEXT PROC (INT CONST )eingabe,INT CONST
+fnr1,fnr2,INT VAR fstatus):LET fehlermeldungsnr=56;IF fnr2<=fnr1THEN LEAVE
+pruefealternativenFI ;INT VAR nr:=fnr1,treffer:=0;REP IF eingabe(nr)<>""THEN
+trefferINCR 1FI ;nrINCR 1UNTIL (nr>fnr2)OR (treffer>1)PER ;IF treffer<>1THEN
+meldeauffaellig(maske,fehlermeldungsnr);fstatus:=fnr1FI .END PROC
+pruefealternativen;PROC pruefedatum(TAG CONST maske,TEXT PROC (INT CONST )
+eingabe,INT CONST fnr,INT VAR fstatus):LET fehlermeldungsnr=157,falschertag=
+"00";TEXT VAR pruefdatum:=eingabe(fnr);IF datum(pruefdatum)=nildatumCOR
+subtext(pruefdatum,1,2)=falschertagTHEN meldeauffaellig(maske,
+fehlermeldungsnr);fstatus:=fnrFI ;END PROC pruefedatum;PROC pruefe(INT CONST
+pruefart,TAG CONST maske,ROW 100TEXT CONST prueftext,INT CONST feldnummer,ug,
+og,TEXT CONST bestand,INT VAR fstatus):fstatus:=0;SELECT pruefartOF CASE 1:
+pruefefeldgefuellt(maske,prueftext,feldnummer,fstatus)CASE 2:pruefenumerisch(
+maske,prueftext,feldnummer,fstatus)CASE 3:pruefenumgrenzen(maske,prueftext,
+feldnummer,ug,og,fstatus)CASE 4:pruefeimbestand(maske,prueftext,feldnummer,
+bestand,fstatus)CASE 5:pruefealternativen(maske,prueftext,feldnummer,ug,
+fstatus)CASE 6:pruefedatum(maske,prueftext,feldnummer,fstatus)END SELECT .
+END PROC pruefe;PROC pruefefeldgefuellt(TAG CONST maske,ROW 100TEXT CONST
+eingabe,INT CONST fnr,INT VAR fstatus):LET fehlermeldungsnr=52;IF eingabe(fnr
+)=""THEN meldeauffaellig(maske,fehlermeldungsnr);fstatus:=fnrFI ;END PROC
+pruefefeldgefuellt;PROC pruefenumerisch(TAG CONST maske,ROW 100TEXT CONST
+eingabe,INT CONST fnr,INT VAR fstatus):LET fehlermeldungsnr=53;INT VAR type;
+TEXT VAR teiltext;scan(eingabe(fnr));nextsymbol(teiltext,type);IF type<>3
+THEN meldeauffaellig(maske,fehlermeldungsnr);fstatus:=fnrELSE nextsymbol(
+teiltext,type);IF type<>7THEN meldeauffaellig(maske,fehlermeldungsnr);fstatus
+:=fnrFI ;FI ;END PROC pruefenumerisch;PROC pruefenumgrenzen(TAG CONST maske,
+ROW 100TEXT CONST eingabe,INT CONST fnr,ug,og,INT VAR fstatus):LET
+fehlermeldungsnr=54;INT VAR inteingabe:=int(eingabe(fnr));IF inteingabe<ugOR
+inteingabe>ogTHEN meldeauffaellig(maske,fehlermeldungsnr);fstatus:=fnrFI ;
+END PROC pruefenumgrenzen;PROC pruefeimbestand(TAG CONST maske,ROW 100TEXT
+CONST eingabe,INT CONST fnr,TEXT CONST bestand,INT VAR fstatus):LET
+fehlermeldungsnr=55;BOOL VAR nichtimbestandgefunden;IF (bestandSUB 1)="c"
+THEN nichtimbestandgefunden:=NOT (imbestand(bestand+trennerfuerfeldwerte+
+eingabe(fnr),dateinameschluessel))ELSE nichtimbestandgefunden:=NOT (imbestand
+(eingabe(fnr),bestand))FI ;IF nichtimbestandgefundenTHEN meldeauffaellig(
+maske,fehlermeldungsnr);fstatus:=fnrFI .END PROC pruefeimbestand;PROC
+pruefealternativen(TAG CONST maske,ROW 100TEXT CONST eingabe,INT CONST fnr1,
+fnr2,INT VAR fstatus):LET fehlermeldungsnr=56;IF fnr2<=fnr1THEN LEAVE
+pruefealternativenFI ;INT VAR nr:=fnr1,treffer:=0;REP IF eingabe(nr)<>""THEN
+trefferINCR 1FI ;nrINCR 1UNTIL (nr>fnr2)OR (treffer>1)PER ;IF treffer<>1THEN
+meldeauffaellig(maske,fehlermeldungsnr);fstatus:=fnr1FI .END PROC
+pruefealternativen;PROC pruefedatum(TAG CONST maske,ROW 100TEXT CONST eingabe
+,INT CONST fnr,INT VAR fstatus):LET fehlermeldungsnr=157,falschertag="00";
+TEXT VAR pruefdatum:=eingabe(fnr);IF datum(pruefdatum)=nildatumCOR subtext(
+pruefdatum,1,2)=falschertagTHEN meldeauffaellig(maske,fehlermeldungsnr);
+fstatus:=fnrFI ;END PROC pruefedatum;BOOL PROC imschlbestand(TEXT CONST
+schlwert,bestand):imbestand(bestand+trennerfuerfeldwerte+schlwert,
+dateinameschluessel)END PROC imschlbestand;BOOL PROC imbestand(TEXT CONST
+schlwerte,bestandname):INT VAR dateinummer,status,position,i;TEXT VAR suchkey
+:=schlwerte;systemdboff;stopbeifalschemnamen(FALSE );dateinummer:=dateinr(
+bestandname);IF dateinummer>0THEN parsenooffields(0);suchwertesetzen;search(
+dateinummer,TRUE );status:=dbstatus;reinitparsingELSE status:=1FI ;
+stopbeifalschemnamen(TRUE );status=0.suchwertesetzen:FOR iFROM 1UPTO anzkey(
+dateinummer)REP ermittleposition;putwert(dateinummer+i,suchwert);suchkey:=
+subtext(suchkey,position+2)UNTIL suchkey=""PER .ermittleposition:position:=
+pos(suchkey,trennerfuerfeldwerte);IF position=0THEN position:=length(suchkey)
+ELSE positionDECR 1FI .suchwert:subtext(suchkey,1,position).END PROC
+imbestand;END PACKET plausipruefung;
+