Formular funktioiert nur für eine JS

Alles, was den Reportdesigner und Drucken betrifft. Fehlermeldungen, Fragen, Reports

Moderatoren: Raffenberg, A. Schüller, Pfotenhauer

Antworten
D.Jakel
Beiträge: 998
Registriert: Sonntag 2. Dezember 2018, 18:13
Schulform: Gymnasium

Formular funktioiert nur für eine JS

Beitrag von D.Jakel »

Guten Tag,

das angehängte Formular stammt aus der Reportsammlung. Filtere ich jahrgangsübergreifend, so wird beim Druck nur die 1.Stufe mit Noten gefüllt, nach dem Stufenwechsel blieben die Felder leer. Da man beim Zeugnisdruck auch über mehrere Stufen drucken kann, verstehe ich nicht, worin das Problem bei diesem Formular besteht.

Gibt es dazu Erkenntnisse?
Dateianhänge
JAK_KLS_ Mahnungserfassung-neu5.rtm
(39.18 KiB) 76-mal heruntergeladen
mfG, D.Jakel
W.Maßmann
Fachberater*in
Beiträge: 1006
Registriert: Montag 3. Dezember 2018, 18:37
Schulform: Gymnasium (a.D.)

Re: Formular funktioiert nur für eine JS

Beitrag von W.Maßmann »

Hallo Herr Jakel,
testen Sie einmal in ReportBeforePrint
SetJgIntervall_ASD(Schueler['06,07,08,09']);
Viele Grüße aus O.-E.
Wolfgang Maßmann
D.Jakel
Beiträge: 998
Registriert: Sonntag 2. Dezember 2018, 18:13
Schulform: Gymnasium

Re: Formular funktioiert nur für eine JS

Beitrag von D.Jakel »

Guten Tag, Herr Maßmann, das funktioniert insofern, dass die Noten nun tatsächlich ausgegegeben werden. Allerdings erscheinen auch alle vorherigen Fachkürzel, unabhängig davon, ob das Fach in der betreffendene Jahrgangsstufe unterrichtet wird. Das ist auch nicht schön, zumal dann die Zeilenlänge nicht mehr ausreicht, wenn der Schüler mehrere AGs besucht hat.
Mir ist jetzt aber klar geworden, worin das Problem besteht:

Im Hauptbericht wird unter "BeforePrint" der Befehl "SetJgIntervall_ASD(Schueler['ASDJahrgang']);" aufgrufen und bei "AfterPrint" steht " SetUebersicht(False);" . Dadurch wird für den ganzen Report der kleinste Jahrgang eingestellt, wenn dabei zwischendurch höhere Jahrgänge aufgerufen werden, ist die Stufe falsch, also werden keine weiteren Noten ausgegeben.

Um das zu korrigieren, muss der Befehl zu Beginn der Gruppe aufgerufen werden, die die Klasse wechselt.
Ich füge also das Ereignis "SetJgIntervall_ASD(Schueler['ASDJahrgang']);" in der Gruppe "Klasse" unter "BeforePrint" ein und bei "AfterPrint" steht " SetUebersicht(False);".
Dann funktioniert es in der Tat wie geplant.

Vielen Dank für die Hilfe zur Selbsthilfe :D
mfG, D.Jakel
Antworten