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 --- .../src/0.anschr.steuerfunktionen zusammengesetzt | 87 ++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 app/schulis/2.2.1/src/0.anschr.steuerfunktionen zusammengesetzt (limited to 'app/schulis/2.2.1/src/0.anschr.steuerfunktionen zusammengesetzt') diff --git a/app/schulis/2.2.1/src/0.anschr.steuerfunktionen zusammengesetzt b/app/schulis/2.2.1/src/0.anschr.steuerfunktionen zusammengesetzt new file mode 100644 index 0000000..0b77e49 --- /dev/null +++ b/app/schulis/2.2.1/src/0.anschr.steuerfunktionen zusammengesetzt @@ -0,0 +1,87 @@ +PACKET anschrsteuerfunktionenfuerzusammengesetzteanschreibenDEFINES +zusammengesetztesanschreiben,naechsteszusammengesetztesanschreiben:LET +niltext="",nildatum="01.01.00";LET nproc=1,eingangsbildschirm=2;LET +vorwaertstaste="a";LET tupelstackgroesse=10;LET druckmeldnr=125, +existiertnichtnr=126,leermeldnr=127,endemeldnr=128,weitereangabenr=129, +nichterstellbarmeldnr=130;TEXT VAR druckmeld:="",anschreibentext;LET meldkz= +"#";INT VAR dateinummer,aktuellerindex,anzgeftupel;BOOL VAR einzelbearbeitung +;PROC zusammengesetztesanschreiben(INT CONST aktuellerinx,BOOL CONST +anschreibenzeigen,peinzelbearbeitung,BOOL PROC sonderwerteundueberpruefungauf +erstellbarkeit,BOOL PROC pruefespeziell,TEXT PROC druckdatei):ROW 10TEXT VAR +schluesselsve1,schluesselsve2;INT VAR i;vorbereitungen;IF einzelbearbeitung +THEN einzelanschreibenELSE anschreibenfuerbestandFI .anschreibenfuerbestand: +IF leererbestandTHEN meldeleerenbestand;zurueckzumeingangsbildschirmELSE +bearbeiteallediesesbestandesFI .bearbeiteallediesesbestandes:IF +anschreibenzeigenTHEN erstenbearbeitenELSE anschreibenleseschleife(BOOL PROC +sonderwerteundueberpruefungauferstellbarkeit,BOOL PROC pruefespeziell,TEXT +PROC druckdatei);meldeendederbrieferstellung;zurueckzumeingangsbildschirmFI . +erstenbearbeiten:BOOL VAR erstellbar:=TRUE ;BOOL VAR bestandleer:=FALSE ; +erstellbar:=sonderwerteundueberpruefungauferstellbarkeit;IF erstellbarTHEN +bearbeitenzumzeigenELSE REP IF anzgeftupel=0THEN anzgeftupel:= +tupelstackgroesse;multisucc(aktuellerindex,anzgeftupel)FI ;IF anzgeftupel<>0 +THEN multisucc;anzgeftupelDECR 1;bestandleer:=NOT pruefespeziellELSE +bestandleer:=TRUE FI UNTIL bestandleerCOR +sonderwerteundueberpruefungauferstellbarkeitPER ;IF NOT bestandleerTHEN +bearbeitenzumzeigenELSE zurueckzumeingangsbildschirm; +meldeendederbrieferstellungFI FI .bearbeitenzumzeigen:IF einzelbearbeitung +CAND NOT sonderwerteundueberpruefungauferstellbarkeitTHEN +meldenichterstellbar;zurueckzumeingangsbildschirmELSE anschreibentext:= +druckdatei;editierebriefFI .einzelanschreiben:direktlesen;IF gefundenTHEN IF +eindeutigTHEN datenlesen;IF anschreibenzeigenTHEN bearbeitenzumzeigenELSE +einzelbriefschreiben;zurueckzumeingangsbildschirmFI ELSE +meldeanforderunggenauererangaben;return(1)FI ELSE meldenichtgefunden;return(1 +)FI .vorbereitungen:dateinummer:=dateinr(primdatid(aktuellerinx)); +aktuellerindex:=aktuellerinx;einzelbearbeitung:=peinzelbearbeitung; +meldungstext(druckmeldnr,druckmeld);setzesonderwerteschulkenndaten;. +direktlesen:gesetztenschluesselsichern(schluesselsve1);anzgeftupel:=2; +multisearchforward(aktuellerindex,anzgeftupel).gefunden:IF anzgeftupel=0THEN +FALSE ELSE multisucc;pruefespeziellFI .eindeutig:anzgeftupel=1COR +naechsterungleich.naechsterungleich:gesetztenschluesselsichern(schluesselsve2 +);multisucc;IF NOT pruefespeziellTHEN TRUE ELSE FOR iFROM 1UPTO anzkey( +dateinummer)REP IF schluesselsve1[i]=""COR (feldtyp(dateinummer+i)=datumfeld +CAND schluesselsve1[i]=nildatum)THEN LEAVE naechsterungleichWITH FALSE FI ; +IF schluesselsve2[i]<>wert(dateinummer+i)THEN LEAVE naechsterungleichWITH +TRUE FI PER ;FALSE FI .datenlesen:stackentry(1).einzelbriefschreiben:IF NOT +sonderwerteundueberpruefungauferstellbarkeitTHEN meldenichterstellbarELSE +briefschreibenFI .meldenichtgefunden:standardmeldung(existiertnichtnr,niltext +).meldeanforderunggenauererangaben:standardmeldung(weitereangabenr,niltext). +meldenichterstellbar:standardmeldung(nichterstellbarmeldnr,sonderwert( +indexadressat)+meldkz).meldeendederbrieferstellung:standardmeldung(endemeldnr +,niltext).zurueckzumeingangsbildschirm:enter(nproc).leererbestand:anzgeftupel +:=tupelstackgroesse;multisearchforward(aktuellerindex,anzgeftupel);IF +anzgeftupel<>0THEN multisucc;anzgeftupelDECR 1;NOT pruefespeziellELSE TRUE +FI .meldeleerenbestand:standardmeldung(leermeldnr,niltext).briefschreiben: +anschreibentext:=druckdatei;print(anschreibentext);standardmeldung( +druckmeldnr,sonderwert(indexadressat)+meldkz);forget(anschreibentext,quiet). +END PROC zusammengesetztesanschreiben;PROC gesetztenschluesselsichern(ROW 10 +TEXT VAR schluesselsve):INT VAR i;FOR iFROM 1UPTO anzkey(dateinummer)REP +schluesselsve[i]:=wert(dateinummer+i)PER ENDPROC gesetztenschluesselsichern; +PROC anschreibenleseschleife(BOOL PROC sonderwerteundueberpruefungauf +erstellbarkeit,BOOL PROC pruefespeziell,TEXT PROC druckdatei):BOOL VAR +schluss:=FALSE ;vorlesen;leseschleife.leseschleife:WHILE NOT schlussREP IF +sonderwerteundueberpruefungauferstellbarkeitTHEN briefschreibenELSE +standardmeldung(nichterstellbarmeldnr,sonderwert(indexadressat)+meldkz)FI ; +lesenPER .lesen:IF anzgeftupel=0THEN anzgeftupel:=tupelstackgroesse;multisucc +(aktuellerindex,anzgeftupel)FI ;satzlesen.vorlesen:anzgeftupel:= +tupelstackgroesse;multisearchforward(aktuellerindex,anzgeftupel);satzlesen. +satzlesen:IF anzgeftupel<>0THEN multisucc;anzgeftupelDECR 1;schluss:=NOT +pruefespeziellELSE schluss:=TRUE FI .briefschreiben:anschreibentext:= +druckdatei;print(anschreibentext);standardmeldung(druckmeldnr,sonderwert( +indexadressat)+meldkz);forget(anschreibentext,quiet).END PROC +anschreibenleseschleife;PROC editierebrief:editiere(anschreibentext, +vorwaertstaste,FALSE )END PROC editierebrief;PROC +naechsteszusammengesetztesanschreiben(BOOL PROC +sonderwerteundueberpruefungauferstellbarkeit,BOOL PROC pruefespeziell,BOOL +CONST drucken,TEXT PROC druckdatei):BOOL VAR bestandleer:=FALSE ;IF drucken +THEN print(anschreibentext);standardmeldung(druckmeld#nr,#,sonderwert( +indexadressat)+meldkz)FI ;forget(anschreibentext,quiet);IF einzelbearbeitung +THEN enter(eingangsbildschirm)ELSE REP IF anzgeftupel=0THEN anzgeftupel:= +tupelstackgroesse;multisucc(aktuellerindex,anzgeftupel)FI ;IF anzgeftupel<>0 +THEN multisucc;anzgeftupelDECR 1;bestandleer:=NOT pruefespeziellELSE +bestandleer:=TRUE FI UNTIL bestandleerCOR +sonderwerteundueberpruefungauferstellbarkeitPER ;IF NOT bestandleerTHEN +anschreibentext:=druckdatei;return(nproc)ELSE standardmeldung(endemeldnr, +niltext);enter(eingangsbildschirm)FI FI END PROC +naechsteszusammengesetztesanschreiben;END PACKET +anschrsteuerfunktionenfuerzusammengesetzteanschreiben; + -- cgit v1.2.3