summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/5.benennen
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/5.benennen')
-rw-r--r--app/schulis/2.2.1/src/5.benennen116
1 files changed, 116 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/5.benennen b/app/schulis/2.2.1/src/5.benennen
new file mode 100644
index 0000000..6f67e8a
--- /dev/null
+++ b/app/schulis/2.2.1/src/5.benennen
@@ -0,0 +1,116 @@
+PACKET benennenDEFINES statbenennen:LET statistikdatei="STATISTIK.",
+statistikserver="statistik server",maskebenennen="mst statistik benennen",
+statistikvorzeilen=3,maxstatistiken=200,maxzeilen=75,maxspalten=50,
+minspaltenbreite=4,niltext="",space=" ",meldungzusatz="+",meldungback=
+"��������������",alt="alt",meldungrestore=" ",mgibtesnicht=477,
+mgibtesschon=485,mspeichern=486,mnichtspeichern=487,mentfernenfrage=488,
+mgeloescht=489,mnichtgeloescht=490,fstatnr=2,fbezeichnung=3,fzeilen=4,
+fspalten=5,fentfernen=6,pruefeimintervall=3,pruefeobwert=1;TEXT VAR
+statistiknummer;FILE VAR stat;PROC statbenennen(INT CONST was):SELECT wasOF
+CASE 1:benennenstartprocCASE 2:benennennprocCASE 3:
+benennenbearbeitenstartprocCASE 4:benennenbearbeitenspeichernCASE 5:
+benennenneustartprocCASE 6:benennenentfernenstartprocCASE 7:
+benennenentfernenexec;leave(2)CASE 8:statlistezeigen(int(standardmaskenfeld(
+fstatnr)))CASE 9:benennenlistebearbeitenstartprocCASE 10:
+benennenlistebearbeitenspeichernCASE 11:benennenlisteentfernenstartprocCASE
+12:benennenentfernenexec;enter(1)CASE 13:benennenbearbeitennichtspeichern
+CASE 14:benennenentfernennichtloeschen;leave(2)CASE 15:
+benennenentfernennichtloeschen;enter(1)CASE 16:benennenentfernennichtloeschen
+;leave(3)END SELECT .benennenstartproc:standardstartproc(maskebenennen);
+standardmaskenfeld(niltext,fstatnr);benennennproc.benennennproc:
+standardmaskenfeld(niltext,fbezeichnung);feldschutz(fbezeichnung);
+standardmaskenfeld(niltext,fzeilen);feldschutz(fzeilen);standardmaskenfeld(
+niltext,fspalten);feldschutz(fspalten);feldschutz(fentfernen);feldfrei(
+fstatnr);infeld(fstatnr);standardnproc.benennenbearbeitenstartproc:IF NOT
+nummerokTHEN leave(1);ELIF NOT statistikexistiert(statnummer)THEN statmeldung
+(mgibtesnicht);infeld(fstatnr);leave(1);ELSE benennenfreigebenundnproc;FI .
+benennenbearbeitenspeichern:IF NOT eingabenokTHEN leave(1);ELIF NOT (
+statistiknummer=statnummer)AND statistikexistiert(statnummer)THEN statmeldung
+(mgibtesschon);infeld(fstatnr);leave(1);ELSE statmeldung(mspeichern);
+statistikspeichern(statistiknummer,statnummer);standardmaskenfeld(niltext,
+fstatnr);leave(2);FI .benennenneustartproc:IF NOT nummerokTHEN leave(1);ELIF
+statistikexistiert(statnummer)THEN statmeldung(mgibtesschon);infeld(fstatnr);
+leave(1);ELSE benennenfreigeben;statistiknummer:=statnummer;standardnprocFI .
+benennenentfernenstartproc:IF NOT nummerokTHEN leave(1);ELIF NOT
+statistikexistiert(statnummer)THEN statmeldung(mgibtesnicht);infeld(fstatnr);
+leave(1);ELSE benennenschuetzenundnproc;FI .benennenschuetzenundnproc:
+benennenausfuellen(statnummer);feldschutz(fstatnr);feldschutz(fbezeichnung);
+feldschutz(fzeilen);feldschutz(fspalten);infeld(fstatnr);
+standardfelderausgeben;statmeldung(mentfernenfrage);infeld(fentfernen);
+standardnproc.benennenfreigebenundnproc:benennenausfuellen(statnummer);
+benennenfreigeben;statistiknummer:=statnummer;standardnproc.benennenfreigeben
+:feldfrei(fbezeichnung);feldfrei(fzeilen);feldfrei(fspalten);feldschutz(
+fentfernen);statnummerIN fstatnr;infeld(fbezeichnung).benennenentfernenexec:
+statistikloeschen(statnummer);statmeldung(mgeloescht);standardmaskenfeld(
+niltext,fstatnr).benennenlistebearbeitenstartproc:statlistebearbeiten(
+maskebenennen);IF statlisteeintrag>niltextTHEN standardmaskenfeld(
+statlisteeintrag,fstatnr);benennenfreigebenundnproc;ELSE standardmaskenfeld(
+niltext,fstatnr);leave(2);FI .benennenlistebearbeitenspeichern:IF NOT
+eingabenokTHEN leave(1);ELIF NOT (statistiknummer=statnummer)AND
+statistikexistiert(statnummer)THEN statmeldung(mgibtesschon);infeld(fstatnr);
+leave(1);ELSE statmeldung(mspeichern);statistikspeichern(statistiknummer,
+statnummer);enter(1);FI .benennenlisteentfernenstartproc:statlistebearbeiten(
+maskebenennen);IF statlisteeintrag>niltextTHEN standardmaskenfeld(
+statlisteeintrag,fstatnr);benennenschuetzenundnproc;ELSE standardmaskenfeld(
+niltext,fstatnr);leave(2);FI .benennenbearbeitennichtspeichern:statmeldung(
+mnichtspeichern);standardmaskenfeld(niltext,fstatnr);leave(2).
+benennenentfernennichtloeschen:statmeldung(mnichtgeloescht);
+standardmaskenfeld(niltext,fstatnr).nummerok:INT VAR status;standardpruefe(
+pruefeimintervall,fstatnr,1,maxstatistiken,niltext,status);IF status>0THEN
+infeld(status)FI ;status=0.eingabenok:IF nummerokTHEN standardpruefe(
+pruefeobwert,fbezeichnung,0,0,niltext,status);FI ;IF status=0THEN
+standardpruefe(pruefeimintervall,fzeilen,1,maxzeilen,niltext,status);FI ;IF
+status=0THEN standardpruefe(pruefeimintervall,fspalten,1,maxspalten,niltext,
+status);FI ;IF status>0THEN infeld(status);FI ;status=0.statnummer:text(int(
+standardmaskenfeld(fstatnr))).END PROC statbenennen;PROC statmeldung(INT
+CONST meldungnummer):standardmeldung(meldungnummer,standardmaskenfeld(fstatnr
+)+meldungzusatz);END PROC statmeldung;PROC benennenausfuellen(TEXT CONST
+statnummer):TEXT VAR bezeichnung;INT VAR wert;forget(statistikdatei+
+statnummer,quiet);fetch(statistikdatei+statnummer,task(statistikserver));stat
+:=sequentialfile(input,statistikdatei+statnummer);standardmaskenfeld(
+statnummer,fstatnr);getline(stat,bezeichnung);standardmaskenfeld(bezeichnung,
+fbezeichnung);get(stat,wert);standardmaskenfeld(text(wert),fzeilen);get(stat,
+wert);standardmaskenfeld(text(wert),fspalten);forget(statistikdatei+
+statnummer,quiet);END PROC benennenausfuellen;BOOL PROC statistikexistiert(
+TEXT CONST statnummer):exists(statistikdatei+statnummer,task(statistikserver)
+)END PROC statistikexistiert;PROC statistikloeschen(TEXT CONST statnummer):
+IF statistikexistiert(statnummer)THEN commanddialogue(FALSE );erase(
+statistikdatei+statnummer,task(statistikserver));commanddialogue(TRUE );FI ;
+END PROC statistikloeschen;PROC statistikspeichern(TEXT CONST altername,
+neuername):INT VAR zeilenneu:=int(standardmaskenfeld(fzeilen)),spaltenneu:=
+int(standardmaskenfeld(fspalten)),benennenneu:=zeilenneu*spaltenneu,zeilenalt
+,spaltenalt,benennenalt,zaehl,zeile,spalte;TEXT VAR dateizeile;FILE VAR
+statalt;forget(statistikdatei+altername,quiet);forget(statistikdatei+
+neuername,quiet);IF NOT statistikexistiert(altername)THEN
+erzeugeneuestatistikELSE aenderealtestatistik;statistikloeschen(altername);
+FI ;sichereneuestatistik.erzeugeneuestatistik:erzeugestatistikmitneuemnamen;
+display(meldungback);FOR zaehlFROM benennenneuDOWNTO 1REP line(stat);cout(
+zaehl);PER ;display(meldungrestore).erzeugestatistikmitneuemnamen:stat:=
+sequentialfile(output,statistikdatei+neuername);putline(stat,
+standardmaskenfeld(fbezeichnung));dateizeile:=text(zeilenneu)+space+text(
+spaltenneu)+space;FOR zaehlFROM 1UPTO spaltenneuREP dateizeileCAT text(
+minspaltenbreite);dateizeileCAT space;PER ;putline(stat,dateizeile);line(stat
+).sichereneuestatistik:save(statistikdatei+neuername,task(statistikserver));
+forget(statistikdatei+neuername,quiet).aenderealtestatistik:forget(
+statistikdatei+alt,quiet);fetch(statistikdatei+altername,task(statistikserver
+));rename(statistikdatei+altername,statistikdatei+alt);statalt:=
+sequentialfile(input,statistikdatei+alt);getline(statalt,dateizeile);get(
+statalt,zeilenalt);get(statalt,spaltenalt);benennenalt:=zeilenalt*spaltenalt;
+IF zeilenalt<>zeilenneuOR spaltenalt<>spaltenneuTHEN aenderedieganzestatistik
+ELIF dateizeile<>standardmaskenfeld(fbezeichnung)THEN aenderediedateizeile
+ELSE rename(statistikdatei+alt,statistikdatei+neuername);FI .
+aenderediedateizeile:modify(statalt);tofirstrecord(statalt);writerecord(
+statalt,standardmaskenfeld(fbezeichnung));rename(statistikdatei+alt,
+statistikdatei+neuername).aenderedieganzestatistik:
+erzeugestatistikmitneuemnamen;modify(statalt);zaehl:=benennenneu;display(
+meldungback);FOR zeileFROM 1UPTO min(zeilenalt,zeilenneu)REP
+uebertrageeinezeileausaltinneu;PER ;FOR zeileFROM zeilenalt+1UPTO zeilenneu
+REP schreibeeineleerezeile;PER ;display(meldungrestore);forget(statistikdatei
++alt,quiet).uebertrageeinezeileausaltinneu:toline(statalt,statistikvorzeilen+
+(zeile-1)*spaltenalt+1);FOR spalteFROM 1UPTO min(spaltenalt,spaltenneu)REP
+readrecord(statalt,dateizeile);putline(stat,dateizeile);down(statalt);zaehlen
+PER ;FOR spalteFROM spaltenalt+1UPTO spaltenneuREP line(stat);zaehlenPER .
+schreibeeineleerezeile:FOR spalteFROM 1UPTO spaltenneuREP line(stat);zaehlen
+PER .zaehlen:cout(zaehl);zaehlDECR 1.END PROC statistikspeichern;END PACKET
+benennen;
+