diff options
Diffstat (limited to 'app/baisy/2.2.1-schulis/src/logbuch verwaltung')
-rw-r--r-- | app/baisy/2.2.1-schulis/src/logbuch verwaltung | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/app/baisy/2.2.1-schulis/src/logbuch verwaltung b/app/baisy/2.2.1-schulis/src/logbuch verwaltung new file mode 100644 index 0000000..7d6577b --- /dev/null +++ b/app/baisy/2.2.1-schulis/src/logbuch verwaltung @@ -0,0 +1,81 @@ +PACKET logbuchverwaltungDEFINES logbuchverwaltungstart,logbuchzeigen, +logbuchdrucken,logbucheditordateidrucken,logbuchloeschen, +logbuchzurueckzummenue:LET maskeeingang="ms logbuch verwaltung";LET +fnrzeilenaktuell=2,fnrzeilenmaximal=3,fnrzeilenkritisch=4,fnrauswahl1=5, +fnrlogname1=6,fnrauswahl2=7,fnrlogname2=8,fnrauswahl3=9,fnrlogname3=10, +fnrauskunftsfeld=11;LET meldnrfalscheauswahl=56,meldnrfehlerbeimloeschen=74, +meldnrlogbuchwurdegelöscht=94,meldnrnochnichtgesichert=95, +meldnrlogbuchwirdgedruckt=96;LET logbuchpraefix="logbuch.*";LET +zusätzlicherlaubtetasten="vr";LET laengelogname=45;INT VAR zeilenaktuell, +zeilenmaximal,zeilenkritisch;THESAURUS VAR thes;INT VAR thesindex;LET +maxlogdateien=3;ROW maxlogdateienTEXT VAR logname;INT VAR ilogname, +aktletzteslog;TEXT VAR dateinamezumzeigen;INT VAR ifnr,auswahl;INT VAR +replycode;LET ack=0,nak=1,dateinichtgesichertack=11,readloglimitsorder=202, +logholenorder=301,gesichertvermerk=306,loeschenorder=307,logmanagername="LOG" +;DATASPACE VAR ds;INT VAR reply;TASK VAR ordertask;BOUND TEXT VAR msgtext; +LET letzteslogack=8;PROC logfetch:FILE VAR f;forget(ds);ds:=nilspace;auftrag( +logholenorder,reply);f:=sequentialfile(input,ds);copy(ds,headline(f));forget( +ds);WHILE reply<>letzteslogackREP warteauflogmanager;f:=sequentialfile(input, +ds);copy(ds,headline(f));forget(ds);ds:=nilspace;send(ordertask,ack,ds);PER . +warteauflogmanager:wait(ds,reply,ordertask);WHILE name(ordertask)<> +logmanagernameREP forget(ds);wait(ds,reply,ordertask);PER .END PROC logfetch; +PROC loggetloglimits(INT VAR anzzeilen,anzzeilenbenutzt,anzzeilenkritisch): +LET LLIMITS =STRUCT (INT zeilen,zeilenbenutzt,zeilenkritisch);BOUND LLIMITS +VAR loggrenzenmsg;forget(ds);ds:=nilspace;loggrenzenmsg:=ds;auftrag( +readloglimitsorder,reply);anzzeilen:=CONCR (loggrenzenmsg).zeilen; +anzzeilenbenutzt:=CONCR (loggrenzenmsg).zeilenbenutzt;anzzeilenkritisch:= +CONCR (loggrenzenmsg).zeilenkritisch;forget(ds)END PROC loggetloglimits;PROC +logsetsavedmark(TEXT CONST logbuchdateiname,INT VAR reply):forget(ds);ds:= +nilspace;msgtext:=ds;msgtext:=logbuchdateiname;auftrag(gesichertvermerk,reply +);forget(ds)END PROC logsetsavedmark;PROC logerasesavedlogs(TEXT CONST +logbuchdateiname,INT VAR reply):forget(ds);ds:=nilspace;msgtext:=ds;msgtext:= +logbuchdateiname;auftrag(loeschenorder,reply);forget(ds)END PROC +logerasesavedlogs;PROC auftrag(INT CONST opcode,INT VAR reply):schickeauftrag +;WHILE auftragnichtangenommenREPEAT pause(10);schickeauftragEND REPEAT . +auftragnichtangenommen:reply=nak.schickeauftrag:call(/logmanagername,opcode, +ds,reply).END PROC auftrag;PROC logbuchverwaltungstart:loggetloglimits( +zeilenmaximal,zeilenaktuell,zeilenkritisch);vorhandenelogbuchdateienloeschen; +FOR ilognameFROM 1UPTO maxlogdateienREP logname(ilogname):=""PER ;logfetch; +thes:=allLIKE logbuchpraefix;thesindex:=0;ilogname:=0;get(thes, +dateinamezumzeigen,thesindex);WHILE thesindex>0REP IF ilogname<maxlogdateien +THEN ilognameINCR 1;logname(ilogname):=dateinamezumzeigen;aktletzteslog:= +ilogname;FI ;get(thes,dateinamezumzeigen,thesindex);PER ;standardstartproc( +maskeeingang);standardmaskenfeld(text(zeilenaktuell),fnrzeilenaktuell); +standardmaskenfeld(text(zeilenmaximal),fnrzeilenmaximal);standardmaskenfeld( +text(zeilenkritisch),fnrzeilenkritisch);logdateinamenaufbereitenundausgeben; +infeld(fnrzeilenaktuell);standardfelderausgeben;infeld(fnrauskunftsfeld); +standardnproc.logdateinamenaufbereitenundausgeben:ifnr:=fnrauswahl1;FOR +ilognameFROM 1UPTO maxlogdateienREP IF logname(ilogname)=""THEN feldschutz( +ifnr);standardmaskenfeld("",ifnr);standardmaskenfeld(laengelogname*" ",ifnr+1 +);ELSE feldfrei(ifnr);standardmaskenfeld("",ifnr);standardmaskenfeld( +nameaufber(ilogname),ifnr+1)FI ;ifnrINCR 2PER .END PROC +logbuchverwaltungstart;TEXT PROC nameaufber(INT CONST iname):TEXT VAR +ausgabename:="Logbuch vom ";ausgabenameCAT subtext(datname,9,22);ausgabename +CAT " bis ";ausgabenameCAT subtext(datname,24,37);ausgabename.datname:logname +(iname)END PROC nameaufber;PROC logbuchzeigen:auswahlbestimmen;IF auswahl=0 +THEN return(1)ELSE dateinamezumzeigen:=logname(auswahl);zeigedatei( +dateinamezumzeigen,zusätzlicherlaubtetasten)FI END PROC logbuchzeigen;PROC +logbucheditordateidrucken:standardmeldung(meldnrlogbuchwirdgedruckt,"");print +(dateinamezumzeigen);logsetsavedmark(dateinamezumzeigen,reply);return(1)END +PROC logbucheditordateidrucken;PROC logbuchdrucken:auswahlbestimmen;IF +auswahl=0THEN return(1)ELSE dateinamezumzeigen:=logname(auswahl); +standardmeldung(meldnrlogbuchwirdgedruckt,"");print(dateinamezumzeigen); +logsetsavedmark(dateinamezumzeigen,reply);return(1)FI END PROC logbuchdrucken +;PROC logbuchloeschen:auswahlbestimmen;IF auswahl=0THEN return(1)ELSE +dateinamezumzeigen:=logname(auswahl);logerasesavedlogs(dateinamezumzeigen, +reply);IF reply=ackTHEN standardmeldung(meldnrlogbuchwurdegelöscht,"");pause( +10);enter(1)ELIF reply=dateinichtgesichertackTHEN standardmeldung( +meldnrnochnichtgesichert,"");return(1)ELSE standardmeldung( +meldnrfehlerbeimloeschen,"");return(1)FI FI END PROC logbuchloeschen;PROC +auswahlbestimmen:auswahl:=0;IF auswahl1THEN IF auswahl2OR auswahl3THEN +fehlermeldungELSE auswahl:=1FI ELIF auswahl2THEN IF auswahl3THEN +fehlermeldungELSE auswahl:=2FI ELIF auswahl3THEN auswahl:=3ELSE fehlermeldung +FI .auswahl1:standardmaskenfeld(fnrauswahl1)<>"".auswahl2:standardmaskenfeld( +fnrauswahl2)<>"".auswahl3:standardmaskenfeld(fnrauswahl3)<>"".fehlermeldung: +standardmeldung(meldnrfalscheauswahl,"").END PROC auswahlbestimmen;PROC +logbuchzurueckzummenue:vorhandenelogbuchdateienloeschen;enter(2)END PROC +logbuchzurueckzummenue;PROC vorhandenelogbuchdateienloeschen:INT VAR kanal:= +channel;commanddialogue(FALSE );break(quiet);forget(allLIKE logbuchpraefix); +continue(kanal);commanddialogue(TRUE )END PROC +vorhandenelogbuchdateienloeschen;END PACKET logbuchverwaltung + |