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 --- .../2.2.1/src/2.likw kurskombinationen sek2 | 166 +++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 app/schulis/2.2.1/src/2.likw kurskombinationen sek2 (limited to 'app/schulis/2.2.1/src/2.likw kurskombinationen sek2') diff --git a/app/schulis/2.2.1/src/2.likw kurskombinationen sek2 b/app/schulis/2.2.1/src/2.likw kurskombinationen sek2 new file mode 100644 index 0000000..35caa9d --- /dev/null +++ b/app/schulis/2.2.1/src/2.likw kurskombinationen sek2 @@ -0,0 +1,166 @@ +PACKET likwkurskombinatilonensek2DEFINES kurskombinationmaskebearbeiten, +kurskombinationggferstellen,kurskombinationzeigen,kurskombinationendrucken: +LET maske="ms kurskombination auszaehlen sek2 eingang",fnr2fuerjgst=2, +fnr3fuerhj=3,fnr4jgstls=4,fnr5jgstneu=5,fnr6kurswahl=6,fnr7bestart=7, +fnr8klausur=8,fnr9bs=9,fnr10dr=10,mnrjgstfalsch=404,mnrjgstfehlt=172, +mnrhjfalsch=405,mnrkeinekwdatenda=406,mnrkeinedbdatenda=407, +mnrbearbeitetwerden=352,mnrlistewirdgedruckt=58,mnrbittewarten=69, +mnrlistewirdaufbereitet=190;INT VAR mnrallgemein;TEXT VAR mnrzusatz;TEXT +CONST mark:="#";LET niltext="",punkt=".",querstrich="/",blank=" ", +blankklammer=" )",doppelpunkt=":",null=0,neuangemeldete="N",allederjgst="", +ohneneuang="O";BOOL VAR bildschirmausgabe,kurswahlen,lsundneue,nurneue,nurls, +bestimmtekursart;TEXT VAR dbsj,dbhj,dbjgst,fuerkwsj,fuerhj,fuerjgst,jgstls, +jgstneu,hilfsstring,kursart,klausur,kennung,fachart,lvart,fachkennung1, +fachkennung2,fachart1,fachart2,kursart1,kursart2;LET maxkurse=200,maxspalten= +13;TEXT CONST ueberschrift3:="-------:"+13*"----+";TEXT VAR ueberschrift1, +ueberschrift2,zeile;LET ausgfeldlaenge=1,AUSGFELD =ROW ausgfeldlaengeTEXT , +AUSGKOPF =ROW ausgkopflaengeTEXT ,AUSGKOPFDRUCK =ROW ausgkopflaengeTEXT ; +AUSGKOPFDRUCK VAR ausgkopfdruck;LET ausgkopflaenge=2,ueberschriftenzeilen=2; +TEXT CONST kopfueb1teil1:="Wahlergebnis für Jgst. ",kopfueb1teil2:= +" im Schuljahr ",kopfueb1teil3:=" (Art/Klausur: ",kopfueb2teil1:= +"Schüler der jetzigen Jgst. ",kopfueb2teil2:=" und der ",kopfueb2teil3:= +"Neuangemeldeten zur Jgst. ";TEXT VAR textueb1:="",textueb2:="";INT VAR +status,dbstatusmerker,zaehler,x,y,z,anzangebote,anztabellen,anzspaltenschluss +,anfang,ende,zeilenzaehler,druckzeilenzahl;LET datenraum="datenraum";LET +ZEILE =STRUCT (TEXT angebot,ROW maxkurseINT anzahl);BOUND ROW maxkurseZEILE +VAR zeilespalte;ROW maxspaltenINT VAR summen;PROC +kurskombinationmaskebearbeiten:standardvproc(maske);END PROC +kurskombinationmaskebearbeiten;PROC kurskombinationggferstellen:lsundneue:= +FALSE ;nurls:=FALSE ;nurneue:=FALSE ;standardmeldung(mnrbittewarten,niltext); +standardpruefe(5,fnr9bs,fnr10dr,null,niltext,status);IF status<>0THEN infeld( +status);return(1)ELSE fuerjgst:=standardmaskenfeld(fnr2fuerjgst);fuerhj:= +standardmaskenfeld(fnr3fuerhj);jgstls:=standardmaskenfeld(fnr4jgstls);jgstneu +:=standardmaskenfeld(fnr5jgstneu);IF NOT eingabenzujgstundhjkorrektTHEN +standardmeldung(mnrallgemein,niltext);return(1);ELSE kursart:= +standardmaskenfeld(fnr7bestart);klausur:=standardmaskenfeld(fnr8klausur); +bestimmtekursart:=kursart<>niltext;kurswahlen:=standardmaskenfeld( +fnr6kurswahl)<>niltext;bildschirmausgabe:=standardmaskenfeld(fnr10dr)=niltext +;IF NOT datenraumfürgewaehltessjdaTHEN standardmeldung(mnrkeinekwdatenda, +niltext);return(1);ELSE IF angebotelvsoderfaecherimrowTHEN +druckdateifuellenundausgebenELSE standardmeldung(mnrkeinedbdatenda,mnrzusatz+ +mark);return(1)FI ;FI ;FI ;FI ;.eingabenzujgstundhjkorrekt:dbhj:= +schulkenndatum("Schulhalbjahr");dbsj:=schulkenndatum("Schuljahr");INT VAR +jgst;standardpruefe(2,fnr2fuerjgst,null,null,niltext,status);IF status<>0 +THEN mnrallgemein:=mnrjgstfalsch;infeld(fnr2fuerjgst);LEAVE +eingabenzujgstundhjkorrektWITH FALSE FI ;jgst:=int(fuerjgst);IF jgst<11COR +jgst>13THEN mnrallgemein:=mnrjgstfalsch;infeld(fnr2fuerjgst);LEAVE +eingabenzujgstundhjkorrektWITH FALSE FI ;IF fuerhj<>"1"AND fuerhj<>"2"THEN +mnrallgemein:=mnrhjfalsch;infeld(fnr3fuerhj);LEAVE eingabenzujgstundhjkorrekt +WITH FALSE FI ;IF jgstls=niltextAND jgstneu=niltextTHEN mnrallgemein:= +mnrjgstfehlt;infeld(fnr4jgstls);LEAVE eingabenzujgstundhjkorrektWITH FALSE +FI ;jgst:=int(jgstls);IF jgstls<>niltextTHEN standardpruefe(2,fnr4jgstls,null +,null,niltext,status);IF status<>0COR (jgst<10COR jgst>13)THEN mnrallgemein:= +mnrjgstfalsch;infeld(fnr4jgstls);LEAVE eingabenzujgstundhjkorrektWITH FALSE +FI ;FI ;jgst:=int(jgstneu);IF jgstneu<>niltextTHEN standardpruefe(2, +fnr5jgstneu,null,null,niltext,status);IF status<>0COR (jgst<11COR jgst>13) +THEN mnrallgemein:=mnrhjfalsch;infeld(fnr5jgstneu);LEAVE +eingabenzujgstundhjkorrektWITH FALSE FI ;FI ;IF jgstls<>niltextAND jgstneu<> +niltextTHEN IF int(jgstls)+1=int(jgstneu)AND jgstneu<=fuerjgstTHEN lsundneue +:=TRUE ELSE mnrallgemein:=mnrjgstfalsch;infeld(fnr4jgstls);LEAVE +eingabenzujgstundhjkorrektWITH FALSE FI ;ELIF jgstls=niltextTHEN IF jgstneu> +fuerjgstTHEN mnrallgemein:=mnrjgstfalsch;infeld(fnr4jgstls);LEAVE +eingabenzujgstundhjkorrektWITH FALSE ELSE nurneue:=TRUE FI ;ELSE IF jgstls> +fuerjgstTHEN mnrallgemein:=mnrjgstfalsch;infeld(fnr2fuerjgst);LEAVE +eingabenzujgstundhjkorrektWITH FALSE ELIF (jgstls="10"AND dbhj="1")COR ( +jgstls=fuerjgstAND fuerhj0;angebotedaEND PROC angebotelvsoderfaecherimrow; +PROC angebotlvmerken(BOOL VAR ende):IF status<>0COR wert(fnrlvjgst)<>dbjgst +THEN ende:=TRUE ;ELSE lvart:=wert(fnrlvart);IF (NOT bestimmtekursart)COR +lvart=kursartTHEN anzangeboteINCR 1;zeilespalte(anzangebote).angebot:=text( +wert(fnrlvfachkennung),6)+lvart;FI ;FI ;END PROC angebotlvmerken;PROC +angebotfangmerken(BOOL VAR ende):IF status<>0COR wert(fnrfangjgst)<>dbjgst +THEN ende:=TRUE ;ELSE fachart:=wert(fnrfangart);IF (NOT bestimmtekursart)COR +fachart=kursartTHEN anzangeboteINCR 1;zeilespalte(anzangebote).angebot:=text( +wert(fnrfangfach),2)+fachart;FI ;FI ;END PROC angebotfangmerken;PROC +druckdateifuellenundausgeben:zeilenzaehler:=0;standardmeldung( +mnrlistewirdaufbereitet,niltext);wahldatenauskwdatenrauminrowablegen; +anztabellen:=anzangeboteDIV maxspalten;anzspaltenschluss:=anzangeboteMOD +maxspalten;ueberschriftenimdruckkopfbauen;variablenfuerdrucksetzen; +druckvorbereiten;initdruckkopf(textueb1,textueb2);FOR zFROM 1UPTO anztabellen +REP ende:=z*maxspalten;anfang:=ende-(maxspalten-1); +tabellevonbisspalteausgeben(maxspalten);IF z0THEN IF anztabellen<>0THEN anfang:=ende+1; +seitenwechselELSE anfang:=1FI ;ende:=anzangebote;tabellevonbisspalteausgeben( +anzspaltenschluss);FI ;IF bildschirmausgabeTHEN kurskombinationzeigenELSE +kurskombinationendrucken(FALSE )FI ;.variablenfuerdrucksetzen:druckzeilenzahl +:=drucklaenge(ueberschriftenzeilen)-ausgkopflaenge. +ueberschriftenimdruckkopfbauen:textueb1:=kopfueb1teil1;textueb1CAT fuerjgst; +textueb1CAT punkt;textueb1CAT fuerhj;textueb1CAT kopfueb1teil2;textueb1CAT +subtext(fuerkwsj,1,2)+querstrich;textueb1CAT subtext(fuerkwsj,3,4);IF +bestimmtekursartOR klausur<>niltextTHEN textueb1CAT kopfueb1teil3;textueb1 +CAT kursart+querstrich;textueb1CAT klausur+blankklammer;FI ;IF NOT (fuerhj= +dbhjAND fuerjgst=jgstls)THEN geplanteshjundsjberechnen(dbhj,dbsj);FI ;IF +nurneueTHEN textueb2:=kopfueb2teil3;textueb2CAT jgstneu;ELSE textueb2:= +kopfueb2teil1;textueb2CAT jgstls;IF lsundneueTHEN textueb2CAT kopfueb2teil2; +textueb2CAT kopfueb2teil3;textueb2CAT jgstneu;FI ;FI ;END PROC +druckdateifuellenundausgeben;PROC wahldatenauskwdatenrauminrowablegen:FOR x +FROM 1UPTO anzangeboteREP y:=1;IF kurswahlenTHEN WHILE y<=xREP +kombiationenlvsmerken(x,y);yINCR 1;PER ;ELSE WHILE y<=xREP +kombinationenfaechermerken(x,y);yINCR 1;PER ;FI ;PER ;END PROC +wahldatenauskwdatenrauminrowablegen;PROC kombiationenlvsmerken(INT CONST zeil +,spal):fachkennung1:=zeilespalte(zeil).angebot;fachkennung2:=zeilespalte(spal +).angebot;IF NOT bestimmtekursartTHEN kursart1:=subtext(fachkennung1,7,7); +kursart2:=subtext(fachkennung2,7,7);ELSE kursart1:=kursart;kursart2:=kursart +FI ;dbstatusmerker:=dbstatus;zeilespalte(zeil).anzahl(spal):= +anzahlschuelermitwahl(subtext(fachkennung1,1,2),subtext(fachkennung1,3,6), +kursart1,klausur,subtext(fachkennung2,1,2),subtext(fachkennung2,3,6),kursart2 +,klausur);dbstatus(dbstatusmerker);END PROC kombiationenlvsmerken;PROC +kombinationenfaechermerken(INT CONST zeil,spal):fachart1:=zeilespalte(zeil). +angebot;fachart2:=zeilespalte(spal).angebot;IF bestimmtekursartTHEN kursart1 +:=kursart;kursart2:=kursart;ELSE kursart1:=subtext(fachart1,3,3);kursart2:= +subtext(fachart2,3,3);FI ;kennung:=niltext;dbstatusmerker:=dbstatus; +zeilespalte(zeil).anzahl(spal):=anzahlschuelermitwahl(subtext(fachart1,1,2), +kennung,kursart1,klausur,subtext(fachart2,1,2),kennung,kursart2,klausur); +dbstatus(dbstatusmerker);END PROC kombinationenfaechermerken;PROC +tabellevonbisspalteausgeben(INT CONST spaltenzahl):INT VAR s,kombinationen; +FOR sFROM 1UPTO maxspaltenREP summen(s):=0PER ;zeilenzaehler:=0;ueberschrift1 +:=" :";ueberschrift2:=" :";FOR zaehlerFROM anfangUPTO endeREP +ueberschrift1CAT text(zeilespalte(zaehler).angebot,2)+" :";IF NOT kurswahlen +THEN ueberschrift2CAT subtext(zeilespalte(zaehler).angebot,3,3)+" :";ELSE +ueberschrift2CAT subtext(zeilespalte(zaehler).angebot,3,6)+":";FI ;PER ; +druckkopfschreiben;setzemitseitennummern(TRUE );druckzeileschreiben( +ueberschrift1);druckzeileschreiben(ueberschrift2);druckzeileschreiben( +ueberschrift3);zeilenzaehlerINCR 12;FOR zaehlerFROM 1UPTO anzangeboteREP s:=1 +;hilfsstring:=zeilespalte(zaehler).angebot;zeile:=text(hilfsstring,2)+blank; +IF kurswahlenTHEN zeileCAT subtext(hilfsstring,3,6)+doppelpunkt;ELSE zeile +CAT subtext(hilfsstring,3,3)+3*blank+doppelpunktFI ;FOR xFROM anfangUPTO ende +REP IF x