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
|
PACKET erfraumgruppenDEFINES erfassungraumgruppen:LET maskenname=
"ms erf raumgruppen",fnrkennung=2,fnrletztesfeld=17,trenner=" = ",maxraeume=
15,laengeraumgruppe=4,laengeeinerraumangabe=4;TEXT VAR raeume:="";TEXT VAR
raum:="";INT VAR anzraeume;TEXT VAR gueltigeraeume:="";LET postrenner="�";
LET meldnrungueltigerraum=55,meldnrraumgruppezulang=60;LET sachgebietraum=
"c02 raeume"PROC erfassungraumgruppen(INT CONST proznr):systemdboff;
reinitparsing;SELECT proznrOF CASE 1:setzeerfassungsparameterCASE 2:
zeigeraumgruppezurbearbeitungCASE 3:pruefeplausibilitaetCASE 4:
setzewertefuerdbspeicherungCASE 5:setzeidentiobjektfuerobjektlisteCASE 6:
raumgruppelesenCASE 7:raumgruppeaendernCASE 8:raumgruppeeinfuegenCASE 9:
raumgruppeloeschenEND SELECT END PROC erfassungraumgruppen;PROC
setzeerfassungsparameter:gueltigeraeume:="";setzeerfassungsparameter(
dnrraumgruppen,maskenname,fnrletztesfeld)END PROC setzeerfassungsparameter;
PROC zeigeraumgruppezurbearbeitung:setzeerfassungsfeld(wert(fnrrgraumgrp),
fnrkennung);raeume:=wert(fnrrgraeume);anzraeume:=(length(raeume))DIV
laengeeinerraumangabe;INT VAR i:=1;WHILE i<=anzraeumeREP raum:=subtext(raeume
,1,laengeeinerraumangabe);raeume:=subtext(raeume,laengeeinerraumangabe+1);
setzeerfassungsfeld(compress(raum),i+fnrkennung);iINCR 1PER ;WHILE i<=
maxraeumeREP setzeerfassungsfeld("",i+fnrkennung);iINCR 1PER ;END PROC
zeigeraumgruppezurbearbeitung;PROC pruefeplausibilitaet:LET leer="",null=0;
IF gueltigeraeume=""THEN holealleraeumeingueltigeraeumeFI ;INT VAR
fehlerstatus;pruefe(1,erfassungsmaske,PROC erfassungswert,fnrkennung,null,
null,leer,fehlerstatus);IF fehlerstatus<>0THEN setzefehlerstatus(fehlerstatus
);LEAVE pruefeplausibilitaetELIF length(erfassungswert(fnrkennung))>
laengeraumgruppeTHEN meldeauffaellig(erfassungsmaske,meldnrraumgruppezulang);
setzefehlerstatus(fnrkennung);LEAVE pruefeplausibilitaetFI ;INT VAR i;FOR i
FROM 1UPTO maxraeumeREP INT VAR fnrraum:=i+fnrkennung;IF erfassungswert(
fnrraum)<>""THEN IF ungueltigeraumangabeTHEN setzefehlerstatus(fnrraum);
meldeauffaellig(erfassungsmaske,meldnrungueltigerraum);LEAVE
pruefeplausibilitaetFI ;FI ;PER .ungueltigeraumangabe:pos(gueltigeraeume,
suchwert)=0.suchwert:postrenner+compress(erfassungswert(fnrraum))+postrenner.
END PROC pruefeplausibilitaet;PROC holealleraeumeingueltigeraeume:
gueltigeraeume:=postrenner;statleseschleife(dnrschluessel,sachgebietraum,"",
fnrschlsachgebiet,fnrschlschluessel,PROC raumlesen);END PROC
holealleraeumeingueltigeraeume;PROC raumlesen(BOOL VAR b):IF dbstatus<>0COR
wert(fnrschlsachgebiet)>sachgebietraumTHEN b:=TRUE ELSE gueltigeraeumeCAT
wert(fnrschlschluessel)+postrennerFI END PROC raumlesen;PROC
setzewertefuerdbspeicherung:putwert(fnrrgraumgrp,erfassungswert(fnrkennung));
INT VAR i;raeume:="";FOR iFROM fnrkennung+1UPTO fnrletztesfeldREP raum:=
erfassungswert(i);IF raum<>""THEN raeumeCAT text(raum,laengeeinerraumangabe)
FI PER ;putwert(fnrrgraeume,raeume)END PROC setzewertefuerdbspeicherung;PROC
setzeidentiobjektfuerobjektliste:LET trennsymbolfuerobli="$";TEXT VAR
identizeile;identizeile:=wert(fnrrgraumgrp)+trenner+wert(fnrrgraeume);
setzeidentiwert(identizeilemitschluesselanhang).
identizeilemitschluesselanhang:identizeile+trennsymbolfuerobli+wert(
fnrrgraumgrp).END PROC setzeidentiobjektfuerobjektliste;PROC raumgruppelesen:
putwert(fnrrgraumgrp,schluessel);search(dnrraumgruppen,TRUE );IF dbstatus=ok
THEN saveupdateposition(dnrraumgruppen)FI END PROC raumgruppelesen;PROC
raumgruppeaendern:restoreupdateposition(dnrraumgruppen);update(dnrraumgruppen
)END PROC raumgruppeaendern;PROC raumgruppeeinfuegen:insert(dnrraumgruppen)
END PROC raumgruppeeinfuegen;PROC raumgruppeloeschen:delete(dnrraumgruppen)
END PROC raumgruppeloeschen;TEXT PROC schluessel:erfassungswert(fnrkennung)
END PROC schluessel;END PACKET erfraumgruppen;
|