Seite 3 von 6
Re: Erzieherbrief Warnungen Nichtversetzung
Verfasst: Samstag 16. März 2024, 23:42
von Raffenberg
Ich war zunächst davon ausgegangen, dass man den Mahnreport auch ohne Aufruf des Gruppenprozesses mit oben genannter Filterung verwenden kann. Anscheinend wird die Pipeline "Warnungen" jedoch unterschiedlich befüllt, je nachdem, ob man über den Gruppenprozess aufruft, oder sofort über den Reportgenerator. Hier hatte Falko den richtigen Riecher.
Ich habe deshalb im Mahnreport den Subreport 'Mahnungen' mit minimalen Anpassungen auf die Pipeline "SchuelerLeistungen" umgestellt, so dass man nach einer Filterung über den Filter II mit diesem Report sofort über den Reportdesigner drucken kann, ohne den Gruppenprozess starten zu müssen.
Ganz kommt man trotzdem nicht um den Gruppenprozess umhin, da man zum Schluss ja noch das Mahndatum setzen muss.
Anbei die geänderte Datei. Bitte testet diese gerne und gebt bei Fehlern gerne Rückmeldung.
Re: Erzieherbrief Warnungen Nichtversetzung
Verfasst: Sonntag 17. März 2024, 09:16
von JensSpeh
Raffenberg hat geschrieben: Samstag 16. März 2024, 22:59
Hallo Falko,
bei mir funktioniert Dein Befehl nicht. Die Idee hat mich aber gepackt. Hier mein SQL-Befehl für Filter II, wobei in den untersten Teil des Filter-Fensters nur der Code nach WHERE zu kopieren ist. Ich hänge den Code auch als SQL-Datei an, die man in Filter II laden kann. Die Datei habe ich in einen ZIP-Container gepackt, da das Forum SQL-Dateien nicht zulässt.
Ich habe im SQL-Befehl den Jahrgang 05 ausgeschlossen, da diese SuS keine Mahnungen erhalten. Zudem filtert der Befehl auf das aktuelle Jahr und den aktuellen Abschnitt, so dass der Code nicht jedes Jahr angepasst werden muss.
Gerne testen und bei Fehlern rückmelden.
Code: Alles auswählen
SELECT Schueler.* FROM Schueler
WHERE
Schueler.Status IN (2)
AND Schueler.Geloescht='-'
AND Schueler.ASDJahrgang<>'05'
AND EXISTS (SELECT slad.ID From SchuelerLernabschnittsdaten As slad
LEFT JOIN SchuelerLeistungsdaten As sld ON sld.Abschnitt_ID=slad.ID
Where slad.Schueler_ID=Schueler.ID
AND slad.Jahr=(Select sch.Schuljahr From EigeneSchule As Sch)
AND slad.Abschnitt=(Select sch.SchuljahrAbschnitt From EigeneSchule As Sch)
AND slad.WechselNr=999
AND slad.Hochrechnung=0
AND sld.Warnung='+'
AND sld.Warndatum IS NULL)
Serienbrief Mahnung gefährdete Versetzung Filter II.zip
Ich bin jetzt kein Experte für SQL, aber an einer Gesamtschule müsste dieser Teil AND Schueler.ASDJahrgang<>'05'
wohl heißen AND (Schueler.ASDJahrgang='09' OR Schueler.ASDJahrgang='10'') ?
Re: Erzieherbrief Warnungen Nichtversetzung
Verfasst: Sonntag 17. März 2024, 15:49
von sbrando
Korrekt, darüber filtert man nur die Schüler in Jg. 9 und 10 heraus.
Re: Erzieherbrief Warnungen Nichtversetzung
Verfasst: Sonntag 17. März 2024, 17:51
von Falko Müller
Raffenberg hat geschrieben: Samstag 16. März 2024, 22:59
Hallo Falko,
bei mir funktioniert Dein Befehl nicht.
Stimmt, ich habe meine Idee nur unvollständig gepostet. Der erste Teil des SQL-Befehls oberhalb der Linie in Filter II muss lauten:
Code: Alles auswählen
SELECT DISTINCT Schueler.* FROM Schueler,SchuelerLernabschnittsdaten
WHERE
und unterhalb der Linie muss dann der Code von oben eingetragen werden. Aber deine Lösung klappt bei mir auch, und die funktioniert dann ja auch nächstes Jahr (falls wir dann noch mit Schild2 arbeiten müssen). Den neuen Report habe ich noch nicht getestet.
Re: Erzieherbrief Warnungen Nichtversetzung
Verfasst: Sonntag 17. März 2024, 20:16
von sbrando
Nur eine Überlegung:
Könnte man nicht die Bedingung "AND Schueler.ASDJahrgang<>'05'" (Gym, Rs, Hs) bzw. "AND (Schueler.ASDJahrgang='09' OR Schueler.ASDJahrgang='10'')" (Ges) ganz streichen.
Der SQL-Befehl filtert doch sowieso nur Schüler heraus, die mindestens eine noch nicht mit Datum versehene Warnung im aktuellen Abschnitt eingetragen haben. Im Jahrgang 5 (Gym, Rs, Hs) bzw. den Jahrgängen 5 bis 8 (Ges) sollten bei keinem Schüler solche Warnungen gesetzt sein, oder irre ich da?
Re: Erzieherbrief Warnungen Nichtversetzung
Verfasst: Sonntag 17. März 2024, 23:15
von JensSpeh
Ein Forumsmitglied hat eine schöne Signatur: Der Computer rechnet mit allem, nur nicht mit dem Nutzer. Oder so ähnlich.
Ich muss auch immer wieder mal solche Mahnungshaken rausnehmen, weil Kollegen das falsch machen.
Re: Erzieherbrief Warnungen Nichtversetzung
Verfasst: Montag 18. März 2024, 06:56
von sbrando
Eine durchaus berechtigte Sichtweise

. Ich exportiere zum Mahntermin daher i. d. R. den 5. Jahrgang gar nicht für das externe Notenmodul, insofern bleibt der sauber. An Gesamtschulen mag das - auch wegen der Quartalsnoten - aber anders sein.
Re: Erzieherbrief Warnungen Nichtversetzung
Verfasst: Montag 18. März 2024, 07:18
von JensSpeh
Es ist anders.
Aber durch Selektion der Mahnungen lassen sich diese schnell finden...
Ich habe im Forum mal eine Preisliste gefunden, die sollte mal bei uns verbindlich eingeführt werden, ich weiß aber nicht mehr, ob da auch fehlerhafte Mahnungen enthalten waren, kann man aber sicherlich problemlos ergänzen!
Re: Erzieherbrief Warnungen Nichtversetzung
Verfasst: Montag 18. März 2024, 08:36
von Raffenberg
Falko Müller hat geschrieben: Sonntag 17. März 2024, 17:51
Stimmt, ich habe meine Idee nur unvollständig gepostet. Der erste Teil des SQL-Befehls oberhalb der Linie in Filter II muss lauten:
Code: Alles auswählen
SELECT DISTINCT Schueler.* FROM Schueler,SchuelerLernabschnittsdaten
WHERE
Da hätte ich auch selbst drauf kommen können. Sorry. Mit SQL-Befehlen fühle ich mich auch noch nicht ganz sicher.
Anscheinend kann Filter II keinen Distinct, allerdings verhindert Dein SQL-Befehl einen doppelten Treffer. Das war auch der Grund, weshalb ich den JOIN zur Sicherheit in den EXISTS Teil ausgelagert hatte.
JensSpeh hat geschrieben: Sonntag 17. März 2024, 09:16
Ich bin jetzt kein Experte für SQL, aber an einer Gesamtschule müsste dieser Teil AND Schueler.ASDJahrgang<>'05'
wohl heißen AND (Schueler.ASDJahrgang='09' OR Schueler.ASDJahrgang='10'') ?
Sie haben natürlich Recht. Ich habe den SQL-Befehl etwas abgewandelt, so dass jede Schulform eine Positivliste der Jahrgänge einpflegen kann. Zudem scheint mir der INNER JOIN noch passender.
Code: Alles auswählen
SELECT Schueler.* FROM Schueler
WHERE Schueler.Status IN (2)
AND Schueler.Geloescht='-'
AND Schueler.ASDJahrgang IN ('06','07','08','09','10','EF')
AND EXISTS (SELECT slad.ID FROM SchuelerLernabschnittsdaten AS slad
INNER JOIN SchuelerLeistungsdaten AS sld ON sld.Abschnitt_ID=slad.ID
WHERE slad.Schueler_ID=Schueler.ID
AND slad.Jahr=(SELECT sch.Schuljahr FROM EigeneSchule AS sch)
AND slad.Abschnitt=(SELECT sch.SchuljahrAbschnitt FROM EigeneSchule AS sch)
AND slad.WechselNr=999
AND slad.Hochrechnung=0
AND sld.Warnung='+'
AND sld.Warndatum IS NULL)
Re: Erzieherbrief Warnungen Nichtversetzung
Verfasst: Montag 18. März 2024, 17:04
von Falko Müller
Raffenberg hat geschrieben: Montag 18. März 2024, 08:36
Anscheinend kann Filter II keinen Distinct
Wie meinst du das? Bei mir klappt das mit DISTINCT in Filter II (siehe Screenshot).

- Filter II.jpg (216.79 KiB) 1968 mal betrachtet
Da ich eigentlich kein SQL kann, nutze ich immer den Filter I, stelle da eine ähnliche Abfrage her (hier: Filter auf Mahnungen), speichere den Filter ab und öffne ihn dann in Filter II. Da musste ich dann nur noch "AND L.Warndatum IS NULL" ergänzen. Daher habe ich auch nicht wahrgenommen, dass sich auch der Text oberhalb der Linie verändert hat.
Wird es Filter II eigentlich auch in Schild 3 geben? In der Version, die ich mal getestet habe, habe ich ihn nicht gefunden. Wäre sehr schade.