PACKET erffaecherDEFINES erfassungfaecher:LET maskenname="ms erf faecher", fnrletztesfeld=5,fnrkennung=2,fnrlangtext=3,fnrgruppe=4,fnrbereich=5,trenner= " = ";LET maxlaengefach=2;LET meldnrfachzulang=60;PROC erfassungfaecher(INT CONST proznr):systemdboff;reinitparsing;SELECT proznrOF CASE 1: setzeerfassungsparameterCASE 2:zeigefachzurbearbeitungCASE 3: pruefeplausibilitaetCASE 4:setzewertefuerdbspeicherungCASE 5: setzeidentiobjektfuerobjektlisteCASE 6:faecherlesenCASE 7:faecheraendernCASE 8:faechereinfuegenCASE 9:faecherloeschenEND SELECT END PROC erfassungfaecher; PROC setzeerfassungsparameter:setzeerfassungsparameter(dnrfaecher,maskenname, fnrletztesfeld)END PROC setzeerfassungsparameter;PROC zeigefachzurbearbeitung :setzeerfassungsfeld(wert(fnrffach),fnrkennung);setzeerfassungsfeld(wert( fnrffachbez),fnrlangtext);setzeerfassungsfeld(textnichtnull(wert(fnrffachgrp) ),fnrgruppe);setzeerfassungsfeld(wert(fnrffachbereich),fnrbereich);END PROC zeigefachzurbearbeitung;PROC pruefeplausibilitaet:LET leer="",null=0;INT VAR fehlerstatus;pruefe(1,erfassungsmaske,PROC erfassungswert,fnrkennung,null, null,leer,fehlerstatus);IF fehlerstatus<>0THEN setzefehlerstatus(fehlerstatus );LEAVE pruefeplausibilitaetELIF length(erfassungswert(fnrkennung))> maxlaengefachTHEN meldeauffaellig(erfassungsmaske,meldnrfachzulang); setzefehlerstatus(fnrkennung);LEAVE pruefeplausibilitaetFI ;pruefe(1, erfassungsmaske,PROC erfassungswert,fnrlangtext,null,null,leer,fehlerstatus); IF fehlerstatus<>0THEN setzefehlerstatus(fehlerstatus);FI ;END PROC pruefeplausibilitaet;PROC setzewertefuerdbspeicherung:putwert(fnrffach, compress(erfassungswert(fnrkennung)));putwert(fnrffachbez,erfassungswert( fnrlangtext));putwert(fnrffachgrp,erfassungswert(fnrgruppe));putwert( fnrffachbereich,erfassungswert(fnrbereich));END PROC setzewertefuerdbspeicherung;PROC setzeidentiobjektfuerobjektliste:LET trennsymbolfuerobli="$";TEXT VAR identizeile;identizeile:=wert(fnrffach)+ trenner+wert(fnrffachbez);setzeidentiwert(identizeilemitschluesselanhang). identizeilemitschluesselanhang:identizeile+trennsymbolfuerobli+wert(fnrffach) .END PROC setzeidentiobjektfuerobjektliste;PROC faecherlesen:putwert(fnrffach ,compress(schluessel));search(dnrfaecher,TRUE );IF dbstatus=okTHEN saveupdateposition(dnrfaecher)FI END PROC faecherlesen;PROC faecheraendern: restoreupdateposition(dnrfaecher);update(dnrfaecher)END PROC faecheraendern; PROC faechereinfuegen:insert(dnrfaecher)END PROC faechereinfuegen;PROC faecherloeschen:delete(dnrfaecher)END PROC faecherloeschen;TEXT PROC schluessel:erfassungswert(fnrkennung)END PROC schluessel;END PACKET erffaecher