summaryrefslogtreecommitdiff
path: root/app/schulis/2.2.1/src/4.einzelstdpl.sek1
diff options
context:
space:
mode:
Diffstat (limited to 'app/schulis/2.2.1/src/4.einzelstdpl.sek1')
-rw-r--r--app/schulis/2.2.1/src/4.einzelstdpl.sek1233
1 files changed, 233 insertions, 0 deletions
diff --git a/app/schulis/2.2.1/src/4.einzelstdpl.sek1 b/app/schulis/2.2.1/src/4.einzelstdpl.sek1
new file mode 100644
index 0000000..1f72cd0
--- /dev/null
+++ b/app/schulis/2.2.1/src/4.einzelstdpl.sek1
@@ -0,0 +1,233 @@
+PACKET einzelstdplsek1DEFINES einzelstdplsek1eingang,einzelstdplsek1starten,
+einzelstdplsek1sonderwerte,einzelstdplsek1multistop,
+einzelstdplsek1druckdateibauen:LET laengelv=8,geplantestd="1",
+maxlvgnproschuelergr=100,maxwochstdn=66,swschuelergruppe=511,swschuljahr=512,
+swhalbjahr=513,swklassenleiter=514,swstellvertreter=516,swtagesstunde=520,
+sw4fach=518,sw4kopplung=519,sw4fachlangtext=520,sw4erllehrer=521,sw6kopplung=
+530,sw7lv=540,maske="ms einzelstdpl sek1 eingang",fnr2jgst=2,fnr3kennung=3,
+fnr4ohneerlaeuterung=4,fnr5akthj=5,fnr6ausgabebs=6,fnr7ausgabedr=7,blank=" ",
+vierblanks=" ",null=0,niltext="",meldnrauswahlunsinnig=56,
+meldnrbittewarten=69,meldnrkeinestundenplandatenvorhanden=366,
+meldnrkeineentsprechendenschuelerda=127,meldnrungueltigeklassengr=320,
+meldnrungueltigejgst=146,maxzeichenimvordruck=79;TASK VAR vordruckserver;
+TEXT CONST dateimitvordruck1:="vordruck1 einzelstdpl sek1",dateimitvordruck2
+:="vordruck2 einzelstdpl sek1",dateimitvordruck3:=
+"vordruck3 einzelstdpl sek1",dateimitvordruck4:="vordruck4 einzelstdpl sek1",
+dateimitvordruck5:="vordruck5 einzelstdpl sek1",dateimitvordruck6:=
+"vordruck6 einzelstdpl sek1",dateimitvordruck7:="vordruck7 einzelstdpl sek1",
+strich:="-",kreuz:="+",abschlusslinie:=76*strich+blank,normaletrennlinie:=3*
+strich+kreuz+5*(11*strich+kreuz)+11*strich+": ";TEXT VAR kopplg:="",hj,sj,
+sjaufber,jgst:="",kennung:="",stdplanrede,uebfolgeseiten,l:="",r:="",p:="",
+lvgnproschuelgr,lv,paraphezurlv,string,schuelergr,kopplungsbez,hilfstext,
+lehrer:="";BOUND ROW maxlvgnproschuelergrTEXT VAR zeitenzulv;BOUND ROW
+maxwochstdnTEXT VAR kopplungen;BOOL VAR gesamtesek1:=FALSE ,bestjgst:=FALSE ,
+bestschuelergruppe:=FALSE ,korrektewahl:=FALSE ,anschreibenaufbszeigen:=TRUE
+,miterlaeuterung:=TRUE ,einzelanschreiben:=TRUE ,aktuelleshjgewaehlt:=TRUE ;
+INT VAR anzzeilen,eingabestatus,i,x,y,z:=0,anzlvgnprokopplg,
+anzlvgnproschuelergr,meldnr;INT CONST aktuellerindex:=dnraktschuelergruppen,
+erstestd:=1,letztestd:=12,sek1max:=10,sek1min:=5,maxwochtage:=6;PROC
+einzelstdplsek1eingang:standardvproc(maske)END PROC einzelstdplsek1eingang;
+PROC einzelstdplsek1starten:IF maskenwerteokTHEN IF stundenplanokTHEN
+startenausfuehrenELSE meldnr:=meldnrkeinestundenplandatenvorhanden;
+meldedenfehler;zurueckzumdialog;FI ;ELSE meldedenfehler;zurueckzumdialogFI ;.
+meldedenfehler:standardmeldung(meldnr,niltext).zurueckzumdialog:return(1).
+startenausfuehren:vordruckserver:=/"anschreiben server";forget(
+dateimitvordruck1,quiet);forget(dateimitvordruck2,quiet);fetch(
+dateimitvordruck1,vordruckserver);fetch(dateimitvordruck2,vordruckserver);
+forget("datenraum1",quiet);forget("datenraum2",quiet);IF miterlaeuterungTHEN
+forget(dateimitvordruck3,quiet);forget(dateimitvordruck4,quiet);forget(
+dateimitvordruck5,quiet);forget(dateimitvordruck6,quiet);forget(
+dateimitvordruck7,quiet);fetch(dateimitvordruck3,vordruckserver);fetch(
+dateimitvordruck4,vordruckserver);fetch(dateimitvordruck5,vordruckserver);
+fetch(dateimitvordruck6,vordruckserver);fetch(dateimitvordruck7,
+vordruckserver);FI ;setzesonderwerteschulkenndaten;standardmeldung(
+meldnrbittewarten,niltext);zusammengesetztesanschreiben(aktuellerindex,
+anschreibenaufbszeigen,einzelanschreiben,BOOL PROC einzelstdplsek1sonderwerte
+,BOOL PROC einzelstdplsek1multistop,TEXT PROC einzelstdplsek1druckdateibauen)
+;END PROC einzelstdplsek1starten;BOOL PROC maskenwerteok:BOOL VAR ok:=FALSE ;
+standardpruefe(5,fnr6ausgabebs,fnr7ausgabedr,null,niltext,eingabestatus);IF
+eingabestatus<>0THEN meldnr:=meldnrauswahlunsinnig;infeld(fnr6ausgabebs);
+ELSE sortierungsetzen;aktuelleshjgewaehlt:=standardmaskenfeld(fnr5akthj)<>
+niltext;sj:=schulkenndatum("Schuljahr");hj:=schulkenndatum("Schulhalbjahr");
+IF NOT (aktuelleshjgewaehlt)THEN geplanteshjundsjberechnen(hj,sj)FI ;sjaufber
+:=subtext(sj,1,2)+"/"+subtext(sj,3,4);anschreibenaufbszeigen:=
+standardmaskenfeld(fnr7ausgabedr)=niltext;miterlaeuterung:=standardmaskenfeld
+(fnr4ohneerlaeuterung)=niltext;korrektewahl:=FALSE ;inittupel(
+dnraktschuelergruppen);putwert(fnrsgrpsj,sj);putwert(fnrsgrphj,hj);IF
+gesamtesek1THEN IF gueltigesek1THEN einzelanschreiben:=FALSE ;ok:=TRUE ELSE
+meldnr:=meldnrkeineentsprechendenschuelerda;infeld(fnr2jgst)FI ;ELIF bestjgst
+THEN IF gueltigejgstTHEN einzelanschreiben:=FALSE ;ok:=TRUE ELSE meldnr:=
+meldnrungueltigejgst;infeld(fnr2jgst)FI ;ELIF bestschuelergruppeTHEN IF
+gueltigeschuelergrTHEN einzelanschreiben:=TRUE ;ok:=TRUE ELSE meldnr:=
+meldnrungueltigeklassengr;infeld(fnr2jgst)FI ;ELSE meldnr:=
+meldnrauswahlunsinnig;infeld(fnr2jgst);FI ;FI ;ok.sortierungsetzen:IF (
+standardmaskenfeld(fnr2jgst)=niltextAND standardmaskenfeld(fnr3kennung)=
+niltext)THEN gesamtesek1:=TRUE ;ELSE IF (standardmaskenfeld(fnr2jgst)<>
+niltextAND standardmaskenfeld(fnr3kennung)<>niltext)THEN bestschuelergruppe:=
+TRUE ELSE IF standardmaskenfeld(fnr3kennung)=niltextTHEN bestjgst:=TRUE FI ;
+FI ;FI END PROC maskenwerteok;BOOL PROC stundenplanok:
+stundenplanhalbjahrsetzen(hj,sj);stundenplanbasisundstundenplanholen(
+eingabestatus);eingabestatus=0OR eingabestatus=8END PROC stundenplanok;BOOL
+PROC gueltigesek1:search(dnraktschuelergruppen);IF (sek1min<=int(wert(
+fnrsgrpjgst))AND sek1max>=int(wert(fnrsgrpjgst))AND dbstatus=0)THEN IF length
+(wert(fnrsgrpjgst))=1THEN jgst:="0"+wert(fnrsgrpjgst);ELSE jgst:=wert(
+fnrsgrpjgst)FI ;kennung:=wert(fnrsgrpkennung);korrektewahl:=TRUE FI ;
+korrektewahlEND PROC gueltigesek1;BOOL PROC gueltigejgst:IF length(
+standardmaskenfeld(fnr2jgst))=1THEN jgst:="0"+standardmaskenfeld(fnr2jgst)
+ELSE jgst:=standardmaskenfeld(fnr2jgst)FI ;IF int(jgst)<=sek1maxAND int(jgst)
+>=sek1minTHEN putwert(fnrsgrpjgst,jgst);search(dnraktschuelergruppen);IF
+dbstatus=0THEN kennung:=wert(fnrsgrpkennung);korrektewahl:=TRUE FI ;FI ;
+korrektewahlEND PROC gueltigejgst;BOOL PROC gueltigeschuelergr:IF length(
+standardmaskenfeld(fnr2jgst))=1THEN jgst:="0"+standardmaskenfeld(fnr2jgst)
+ELSE jgst:=standardmaskenfeld(fnr2jgst)FI ;kennung:=standardmaskenfeld(
+fnr3kennung);IF int(jgst)<=sek1maxAND int(jgst)>=sek1minTHEN putwert(
+fnrsgrpjgst,jgst);putwert(fnrsgrpkennung,kennung);search(
+dnraktschuelergruppen,TRUE );IF dbstatus=0THEN korrektewahl:=TRUE FI ;FI ;
+korrektewahlEND PROC gueltigeschuelergr;BOOL PROC einzelstdplsek1multistop:
+BOOL VAR b;IF bestschuelergruppeTHEN b:=intwert(fnrsgrpsj)=int(sj)AND intwert
+(fnrsgrphj)=int(hj)AND intwert(fnrsgrpjgst)=int(jgst)AND wert(fnrsgrpkennung)
+=kennungAND dbstatus=okELIF bestjgstTHEN b:=intwert(fnrsgrpsj)=int(sj)AND
+intwert(fnrsgrphj)=int(hj)AND intwert(fnrsgrpjgst)=int(jgst)AND dbstatus=ok
+ELSE b:=intwert(fnrsgrpsj)=int(sj)AND intwert(fnrsgrphj)=int(hj)AND intwert(
+fnrsgrpjgst)<=sek1maxAND intwert(fnrsgrpjgst)>=sek1minAND dbstatus=okFI ;b
+ENDPROC einzelstdplsek1multistop;BOOL PROC einzelstdplsek1sonderwerte:INT
+VAR gemerkterdbstatus;initialisieresonderwerte;setzesonderwert(swschuljahr,
+sjaufber);setzesonderwert(swhalbjahr,hj);IF length(wert(fnrsgrpjgst))=1THEN
+jgst:="0"+wert(fnrsgrpjgst);ELSE jgst:=wert(fnrsgrpjgst)FI ;kennung:=wert(
+fnrsgrpkennung);schuelergr:=jgst+kennung;setzesonderwert(swschuelergruppe,
+jgst+kennung);adressat(schuelergr);gemerkterdbstatus:=dbstatus;inittupel(
+dnrlehrer);putwert(fnrlparaphe,wert(fnrsgrplehrer));search(dnrlehrer,TRUE );
+IF dbstatus=0THEN IF wert(fnrlgeschlecht)="m"THEN lehrer:="Hr. "ELSE lehrer:=
+"Fr. "FI ;hilfstext:=wert(fnrlamtsbeztitel);IF hilfstext<>niltextTHEN lehrer
+CAT hilfstext;lehrerCAT blank;FI ;hilfstext:=wert(fnrlzusatz);IF hilfstext<>
+niltextTHEN lehrerCAT hilfstext;lehrerCAT blank;FI ;lehrerCAT wert(
+fnrlfamname);setzesonderwert(swklassenleiter,lehrer);FI ;inittupel(dnrlehrer)
+;putwert(fnrlparaphe,wert(fnrsgrpstellvlehrer));search(dnrlehrer,TRUE );IF
+dbstatus=0THEN IF wert(fnrlgeschlecht)="m"THEN lehrer:="Hr. "ELSE lehrer:=
+"Fr. "FI ;hilfstext:=wert(fnrlamtsbeztitel);IF hilfstext<>niltextTHEN lehrer
+CAT hilfstext;lehrerCAT blank;FI ;hilfstext:=wert(fnrlzusatz);IF hilfstext<>
+niltextTHEN lehrerCAT hilfstext;lehrerCAT blank;FI ;lehrerCAT wert(
+fnrlfamname);setzesonderwert(swstellvertreter,lehrer);FI ;dbstatus(
+gemerkterdbstatus);TRUE END PROC einzelstdplsek1sonderwerte;TEXT PROC
+einzelstdplsek1druckdateibauen:LET stddruckdatei="liste.1",druckdatei=
+"Stundenplan",hilfsdatei="hilfsdatei";FILE VAR f;IF miterlaeuterungTHEN
+kopplungsmerkrowinitialisieren;setzemitseitennummern(TRUE )FI ;forget(
+druckdatei,quiet);druckvorbereiten;setzeanzahlderzeichenprozeile(
+maxzeichenimvordruck);uebfolgeseiten:="Stundenplan für Klasse "+schuelergr+
+"(Schuljahr "+sjaufber+", "+hj+". Halbjahr)";anzzeilen:=1;briefalternative(
+dateimitvordruck1,hilfsdatei);zeilenweisehilfsdateiindruckdatei(hilfsdatei);
+forget(hilfsdatei,quiet);proschuelergruppeallelvgnmitzeitenind2ablegen;FOR x
+FROM erstestdUPTO letztestdREP
+datendeszweitenvordrucksindruckdateiundggfkopplgmerken(x)PER ;IF
+miterlaeuterungTHEN briefalternative(dateimitvordruck3,hilfsdatei);
+zeilenweisehilfsdateiindruckdatei(hilfsdatei);forget(hilfsdatei,quiet);FOR x
+FROM 1UPTO anzlvgnproschuelergrREP datendesviertenvordrucksindruckdatei;PER ;
+IF anzzeilen+8>=drucklaengeTHEN seitenwechsel;druckzeileschreiben(
+uebfolgeseiten);druckzeileschreiben(blank);anzzeilen:=3FI ;briefalternative(
+dateimitvordruck5,hilfsdatei);zeilenweisehilfsdateiindruckdatei(hilfsdatei);
+forget(hilfsdatei,quiet);FOR xFROM 1UPTO maxwochstdnREP
+datendessechstenundsiebtenvordrucksindruckdatei(x);PER ;FI ;
+drucknachbereitenohneausdrucken;rename(stddruckdatei,druckdatei);f:=
+sequentialfile(modify,druckdatei);toline(f,1);input(f);druckdatei.
+kopplungsmerkrowinitialisieren:forget("datenraum1",quiet);kopplungen:=new(
+"datenraum1");FOR xFROM 1UPTO maxwochstdnREP kopplungen(x):=niltext;PER .
+proschuelergruppeallelvgnmitzeitenind2ablegen:lvgnproschuelgr:=
+lvderschuelergruppe(schuelergr);anzlvgnproschuelergr:=(length(lvgnproschuelgr
+))DIV laengelv;forget("datenraum2",quiet);zeitenzulv:=new("datenraum2");INT
+VAR position:=0;FOR xFROM 1UPTO anzlvgnproschuelergrREP lv:=subtext(
+lvgnproschuelgr,position+1,position+laengelv);string:=allezeitenvon("L",lv);
+stringCAT lv;zeitenzulv(x):=string;positionINCR laengelv;PER ;FOR xFROM
+anzlvgnproschuelergr+1UPTO maxlvgnproschuelergrREP zeitenzulv(x):=niltext;
+PER ;.datendesviertenvordrucksindruckdatei:TEXT VAR fach:=subtext(zeitenzulv(
+x),maxwochstdn+3,maxwochstdn+4);fachCAT blank;setzesonderwert(sw4fach,fach);
+IF length(zeitenzulv(x))>maxwochstdn+laengelvTHEN kopplg:=subtext(zeitenzulv(
+x),maxwochstdn+laengelv+1,maxwochstdn+2*laengelv);setzesonderwert(sw4kopplung
+,"("+kopplg+")");ELSE setzesonderwert(sw4kopplung,10*blank)FI ;inittupel(
+dnrfaecher);putwert(fnrffach,compress(fach));search(dnrfaecher,TRUE );IF
+dbstatus=okTHEN setzesonderwert(sw4fachlangtext,wert(fnrffachbez))ELSE
+setzesonderwert(sw4fachlangtext,blank)FI ;paraphezurlv:=datenzurlv("P",
+subtext(zeitenzulv(x),maxwochstdn+1,maxwochstdn+laengelv));inittupel(
+dnrlehrer);putwert(fnrlparaphe,compress(paraphezurlv));search(dnrlehrer,TRUE
+);IF dbstatus=okTHEN IF wert(fnrlgeschlecht)="w"THEN lehrer:="Fr. "ELSE
+lehrer:="Hr. "FI ;hilfstext:=wert(fnrlamtsbeztitel);IF hilfstext<>niltext
+THEN lehrerCAT hilfstext;lehrerCAT blank;FI ;hilfstext:=wert(fnrlzusatz);IF
+hilfstext<>niltextTHEN lehrerCAT hilfstext;lehrerCAT blank;FI ;lehrerCAT wert
+(fnrlfamname);setzesonderwert(sw4erllehrer,lehrer);ELSE setzesonderwert(
+sw4erllehrer,blank);FI ;briefalternative(dateimitvordruck4,hilfsdatei);
+zeilenweisehilfsdateiindruckdatei(hilfsdatei);forget(hilfsdatei,quiet);END
+PROC einzelstdplsek1druckdateibauen;PROC zeilenweisehilfsdateiindruckdatei(
+TEXT CONST hilfsdatei):TEXT VAR zeile:=niltext;FILE VAR f;f:=sequentialfile(
+input,hilfsdatei);FOR iFROM 1UPTO lines(f)REP getline(f,zeile);anzzeilenINCR
+1;IF anzzeilen<drucklaengeTHEN druckzeileschreiben(zeile);ELSE seitenwechsel;
+druckzeileschreiben(uebfolgeseiten);druckzeileschreiben(blank);
+druckzeileschreiben(zeile);anzzeilen:=3;FI ;PER ;END PROC
+zeilenweisehilfsdateiindruckdatei;PROC
+datendeszweitenvordrucksindruckdateiundggfkopplgmerken(INT CONST std):LET
+hilfsdatei="hilfsdatei";TEXT VAR zeile:=niltext;FILE VAR f;setzesonderwert(
+swtagesstunde,text(std,2));IF miterlaeuterungTHEN
+stdplanprowochstdlesenswsetzenunddatenprokopplgmerken(std)ELSE
+stdplanprowochstdlesenundswsetzen(std)FI ;briefalternative(dateimitvordruck2,
+hilfsdatei);zeilenweisehilfsdateiindruckdatei(hilfsdatei);f:=sequentialfile(
+input,hilfsdatei);IF std<>letztestdTHEN zeile:=normaletrennlinieELSE zeile:=
+abschlusslinieFI ;druckzeileschreiben(zeile);anzzeilenINCR 1;forget(
+hilfsdatei,quiet);END PROC
+datendeszweitenvordrucksindruckdateiundggfkopplgmerken;PROC
+datendessechstenundsiebtenvordrucksindruckdatei(INT CONST d1index):LET
+hilfsdatei="hilfsdatei";FILE VAR f;INT VAR y,z,index:=d1index;TEXT VAR tagstd
+,zeiten,altekopplg,fach,allelvsderkopplg;INT CONST maxauszugebendezeiten:=8;
+INT VAR anzzeitenprokopplg,poslv,sonderwert;IF kopplungen(index)<>niltext
+THEN altekopplg:=kopplungen(index);setzesonderwert(sw6kopplung,altekopplg);
+zeiten:=text(index,2);FOR zFROM index+1UPTO maxwochstdnREP IF kopplungen(z)=
+altekopplgTHEN zeitenCAT text(z,2);kopplungen(z):=niltext;FI ;PER ;
+anzzeitenprokopplg:=length(zeiten)DIV 2;poslv:=1;sonderwert:=sw6kopplung+1;
+FOR zFROM 1UPTO 8REP IF anzzeitenprokopplg>=zTHEN tagstd:=subtext(zeiten,
+poslv,poslv+1);setzesonderwert(sonderwert,tagstunde(int(tagstd),TRUE ));ELSE
+setzesonderwert(sonderwert,blank)FI ;poslvINCR 2;sonderwertINCR 1PER ;
+briefalternative(dateimitvordruck6,hilfsdatei);
+zeilenweisehilfsdateiindruckdatei(hilfsdatei);forget(hilfsdatei,quiet);
+allelvsderkopplg:=allelvmit("K",altekopplg);anzlvgnprokopplg:=(length(
+allelvsderkopplg)DIV laengelv);poslv:=1;TEXT VAR lvderkopplg;BOOL VAR
+lvmind1malgeplant;FOR yFROM 1UPTO anzlvgnprokopplgREP lvmind1malgeplant:=
+FALSE ;lvderkopplg:=subtext(allelvsderkopplg,poslv,poslv+7);IF pos(
+lvgnproschuelgr,lvderkopplg)<>0THEN
+fuerallezeitenderlvplaneintraegelesenundsonderwertesetzen;FI ;IF
+lvmind1malgeplantTHEN briefalternative(dateimitvordruck7,hilfsdatei);
+zeilenweisehilfsdateiindruckdatei(hilfsdatei);forget(hilfsdatei,quiet);FI ;
+poslvINCR laengelv;PER ;TEXT VAR leerzeile:=blank;druckzeileschreiben(
+leerzeile);FI ;.fuerallezeitenderlvplaneintraegelesenundsonderwertesetzen:
+TEXT VAR l,r,p;INT VAR zeit,poszeit;sonderwert:=sw7lv;fach:=subtext(
+lvderkopplg,3,4);setzesonderwert(sonderwert,fach);poszeit:=1;FOR zFROM 1UPTO
+maxauszugebendezeitenREP sonderwertINCR 1;IF anzzeitenprokopplg>=zTHEN zeit:=
+int(subtext(zeiten,poszeit,poszeit+1));IF lvgeplant(zeit,lvderkopplg)THEN
+planeintraglesen(zeit,"L",lvderkopplg,l,r,p);IF r=vierblanksTHEN
+setzesonderwert(sonderwert,"x");ELSE setzesonderwert(sonderwert,r);FI ;
+lvmind1malgeplant:=TRUE ;FI ;ELSE setzesonderwert(sonderwert,blank);FI ;
+poszeitINCR 2PER END PROC datendessechstenundsiebtenvordrucksindruckdatei;
+PROC stdplanprowochstdlesenundswsetzen(INT CONST std):INT VAR x,sonderwert:=
+521;INT VAR wochenstd:=std;FOR iFROM 1UPTO maxwochtageREP IF wochenstd<=
+maxwochstdnTHEN string:="";FOR xFROM 1UPTO anzlvgnproschuelergrREP IF (
+zeitenzulv(x)SUB wochenstd)=geplantestdTHEN stringCAT (subtext(zeitenzulv(x),
+maxwochstdn+1,maxwochstdn+laengelv));FI ;PER ;IF length(string)<=laengelv
+THEN planeintraglesen(wochenstd,"L",string,l,r,p);setzesonderwert(sonderwert,
+subtext(l,3,4)+" "+r)ELSE planeintraglesen(wochenstd,"L",subtext(string,1,8),
+l,r,p);setzesonderwert(sonderwert,"*"+datenzurlv("K",l))FI ;wochenstdINCR
+letztestd;sonderwertINCR 1;ELSE setzesonderwert(sonderwert,blank)FI ;PER ;
+END PROC stdplanprowochstdlesenundswsetzen;PROC
+stdplanprowochstdlesenswsetzenunddatenprokopplgmerken(INT CONST stunde):INT
+VAR x,pos,posstring,sonderwert:=521;INT VAR wochenstd:=stunde;TEXT VAR
+lvposimrow;FOR iFROM 1UPTO maxwochtageREP IF wochenstd<=maxwochstdnTHEN
+string:="";lvposimrow:=niltext;FOR xFROM 1UPTO anzlvgnproschuelergrREP IF (
+zeitenzulv(x)SUB wochenstd)=geplantestdTHEN stringCAT (subtext(zeitenzulv(x),
+maxwochstdn+1,maxwochstdn+laengelv));lvposimrowCAT text(x,3);FI ;PER ;IF
+length(lvposimrow)=3THEN planeintraglesen(wochenstd,"L",string,l,r,p);
+setzesonderwert(sonderwert,subtext(l,3,4)+" "+r);ELIF length(lvposimrow)>3
+THEN kopplungsbez:=datenzurlv("K",subtext(string,1,laengelv));setzesonderwert
+(sonderwert,"*"+kopplungsbez);kopplungen(wochenstd):=kopplungsbez;pos:=1;
+posstring:=1;FOR yFROM 1UPTO (length(lvposimrow)DIV 3)REP IF length(
+zeitenzulv(int(subtext(lvposimrow,pos,pos+2))))=maxwochstdn+laengelvTHEN
+zeitenzulv(int(subtext(lvposimrow,pos,pos+2)))CAT kopplungsbezFI ;posINCR 3;
+posstringINCR 8PER ;ELSE setzesonderwert(sonderwert,blank);FI ;wochenstdINCR
+letztestd;sonderwertINCR 1;ELSE setzesonderwert(sonderwert,blank)FI ;PER ;
+END PROC stdplanprowochstdlesenswsetzenunddatenprokopplgmerken;END PACKET
+einzelstdplsek1;
+