From 04e68443040c7abad84d66477e98f93bed701760 Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Mon, 4 Feb 2019 13:09:03 +0100 Subject: Initial import --- app/schulis/2.2.1/src/0.listen.benutz | 84 +++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 app/schulis/2.2.1/src/0.listen.benutz (limited to 'app/schulis/2.2.1/src/0.listen.benutz') diff --git a/app/schulis/2.2.1/src/0.listen.benutz b/app/schulis/2.2.1/src/0.listen.benutz new file mode 100644 index 0000000..cabeae1 --- /dev/null +++ b/app/schulis/2.2.1/src/0.listen.benutz @@ -0,0 +1,84 @@ +PACKET benutzerlisteDEFINES benulispezielleteile:LET niltext="",blank=" ", +null=0,slash="/",spaltentrenner=" ",ueberschriftenzeilen=1,anzspalten=6, +dateiname="sortdatei",ausgfeldlaenge=9,spaltenbreite=11,AUSGFELD =ROW +ausgfeldlaengeTEXT ,benulieingangsmaske="mu liste einfach eingang", +benulianfpos=2,mnrbearbeitetwerden=104;#LET dnrbenutz=7,fnrbenutzname=9, +fnrbenutzberecht=11;#INT VAR druckzeilenzahl,bildanf,eingabestatus, +aktuelleindexnr,ausgfeldlaengereal;TEXT VAR benuliueberschrift,kennung, +berechtigungen,bearbeitetwerden,startwert,anfbuchstabe,neueranfbuchstabe; +AUSGFELD VAR ausgfeld;BOOL PROC multistop:TRUE END PROC multistop;PROC +benulispezielleteile(INT CONST nr):SELECT nrOF CASE 1:benulidialogvorbereiten +CASE 2:benulieingabenrichtigCASE 3:benulilistenvorbereitenCASE 4: +benulidruckvorbereitenCASE 5:benuliseitedruckenCASE 6: +benulibildschirmvorbereitenCASE 7:benuliseitezeigenENDSELECT .END PROC +benulispezielleteile;PROC benulidialogvorbereiten:systemdbon;#first(dnrbenutz +);startwert:=wert(fnrbenutzname);#benuliueberschrift:=text(vergleichsknoten); +setzeanfangswerte(benulieingangsmaske,benulianfpos).END PROC +benulidialogvorbereiten;PROC benulieingabenrichtig:LET fnrausgdrucker=2, +fnrausgbild=3;standardpruefe(5,fnrausgdrucker,fnrausgbild,null,niltext, +eingabestatus);IF eingabestatus<>0THEN infeld(eingabestatus);setzeeingabetest +(FALSE )ELSE setzeausgabedrucker(standardmaskenfeld(fnrausgbild)=niltext); +setzeeingabetest(TRUE )FI .END PROC benulieingabenrichtig;PROC +benulilistenvorbereiten:INT VAR i;BOOL VAR b:=FALSE ;initspalten;FOR iFROM 1 +UPTO anzspaltenREP setzespaltenbreite(spaltenbreite)PER ;setzespaltentrenner( +spaltentrenner);aktuelleindexnr:=dnrbenutz;inittupel(dnrbenutz); +setzeidentiwert("");initobli(2);objektlistestarten(aktuelleindexnr,"", +fnrbenutzname,FALSE ,b);setzebestandende(NOT multistop)END PROC +benulilistenvorbereiten;PROC benulibildschirmvorbereiten:LET fnrausganf=2; +standardkopfmaskeaktualisieren(benuliueberschrift);bildanf:=fnrausganf; +setzebildanfangsposition(bildanf).END PROC benulibildschirmvorbereiten;PROC +benuliseitezeigen:blaettern(PROC (INT CONST )benutzerzeigen,aktion,FALSE , +FALSE ,BOOL PROC multistop);END PROC benuliseitezeigen;PROC benutzerzeigen( +INT CONST x):benutzerholen;benutzeraufbereitenbild;benutzeraufbildschirm.END +PROC benutzerzeigen;PROC benutzeraufbereitenbild:INT VAR i; +benutzeraufbereitenallgemein(bildbreite);restbehandlungbild. +restbehandlungbild:FOR iFROM ausgfeldlaengereal+1UPTO ausgfeldlaengeREP +ausgfeld(i):=text(blank,bildbreite)PER .END PROC benutzeraufbereitenbild; +PROC benutzeraufbildschirm:INT VAR i;FOR iFROM 1UPTO ausgfeldlaengeREP +ausgfeld(i)IN ausgabepos;erhoeheausgabeposumeinsEND REP .END PROC +benutzeraufbildschirm;PROC benulidruckvorbereiten:anfbuchstabe:=niltext; +druckvorbereiten;variablenfuerdrucksetzen;initdruckkopf(zentriert( +benuliueberschrift,druckbreite));holemeldung;systemdbon;inittupel(dnrbenutz); +setzebestandende(NOT multistop);lesenvorbereitendruck(PROC (INT CONST ,BOOL +PROC ,INT VAR )scanforward,BOOL PROC multistop).holemeldung:meldungstext( +mnrbearbeitetwerden,bearbeitetwerden).variablenfuerdrucksetzen: +druckzeilenzahl:=drucklaenge(ueberschriftenzeilen).END PROC +benulidruckvorbereiten;PROC benuliseitedrucken:benuliueberschriftdrucken; +seitedrucken(PROC (INT VAR )benutzerdrucken,druckzeilenzahl,ausgfeldlaenge, +BOOL PROC multistop);seitenwechsel.END PROC benuliseitedrucken;PROC +benuliueberschriftdrucken:druckkopfschreiben.END PROC +benuliueberschriftdrucken;PROC benutzerdrucken(INT VAR zeilenzaehler):LET +markiert="#";benutzerholen;ggflmeldunganfbuchstabe;benutzeraufbereitendruck; +zeilenzaehlerINCR ausgfeldlaengereal;benutzerindruckdatei. +ggflmeldunganfbuchstabe:IF anfbuchstabegeaendertTHEN meldunganfbuchstabeFI . +anfbuchstabegeaendert:neueranfbuchstabe:=kennungSUB 1;anfbuchstabe<> +neueranfbuchstabe.meldunganfbuchstabe:standardmeldung(bearbeitetwerden, +neueranfbuchstabe+markiert);anfbuchstabe:=neueranfbuchstabe.END PROC +benutzerdrucken;PROC benutzeraufbereitendruck:benutzeraufbereitenallgemein( +druckbreite).END PROC benutzeraufbereitendruck;PROC benutzerindruckdatei:INT +VAR i;FOR iFROM 1UPTO ausgfeldlaengerealREP druckzeileschreiben(ausgfeld(i)) +PER .END PROC benutzerindruckdatei;PROC benutzeraufbereitenallgemein(INT +CONST breite):INT VAR position,anzahlberechtigungen,anzzeilenreal,i,j,k;FILE +VAR f;TEXT VAR berechtigung;kennungaufbereiten;berechtigungenaufbereiten. +kennungaufbereiten:ausgfeld(1):=text(kennung,breite). +berechtigungenaufbereiten:erstenslashimtextueberlesen; +berechtigungenindateiundsortieren;wirklichezeilenzahlberechnen; +ausgabefelderberechtigungenauffuellen.erstenslashimtextueberlesen:position:= +pos(berechtigungen,slash);berechtigungen:=subtext(berechtigungen,position+1). +berechtigungenindateiundsortieren:f:=sequentialfile(output,dateiname); +anzahlberechtigungen:=null;position:=pos(berechtigungen,slash);WHILE position +<>nullREP anzahlberechtigungenINCR 1;putline(f,subtext(berechtigungen,1, +position-1));berechtigungen:=subtext(berechtigungen,position+1);position:=pos +(berechtigungen,slash)PER ;putline(f,berechtigungen);anzahlberechtigungen +INCR 1;sort(dateiname).wirklichezeilenzahlberechnen:anzzeilenreal:= +anzahlberechtigungenDIV anzspalten;IF (anzahlberechtigungenMOD anzspalten<> +null)THEN anzzeilenrealINCR 1FI .ausgabefelderberechtigungenauffuellen:f:= +sequentialfile(input,dateiname);i:=null;FOR jFROM 1UPTO anzzeilenrealREP FOR +kFROM 1UPTO anzspaltenREP iINCR 1;IF i>anzahlberechtigungenTHEN spaltenweise( +blank)ELSE getline(f,berechtigung);spaltenweise(berechtigung)FI ;PER ; +ausgfeld(j+1):=zeilePER ;forget(dateiname,quiet);ausgfeldlaengereal:= +anzzeilenreal+2;ausgfeld(ausgfeldlaengereal):=text(blank,breite).END PROC +benutzeraufbereitenallgemein;PROC benutzerholen:kennung:=wert(fnrbenutzname); +berechtigungen:=wert(fnrbenutzberecht);END PROC benutzerholen;END PACKET +benutzerliste; + -- cgit v1.2.3