Seite 1 von 2

Gruppierung nach schulinternen Funktionen

Verfasst: Mittwoch 25. November 2020, 12:09
von apuleius
Ich möchte einen Bericht erstellen, der die Lehrer nach schulinternen Funktionen gruppiert. Andersherum habe ich es bereits hinbekommen, mit einem Bericht mit Pipeline Lehrer und einem Unterbericht mit LehrerAktuelleAbschnittsdaten und darin ein Unterreport für die LehrerFunktionen.

Durch umgekehrte Schachtelung der (Unter)berichte klappt es jedenfalls nicht. Wenn ich in dem innersten Unterbericht auf Lehrer["Name"] zugreife bleibt der Bericht einfach leer.

Re: Gruppierung nach schulinternen Funktionen

Verfasst: Mittwoch 25. November 2020, 12:28
von Raffenberg
Hallo,
sie können die Datenpipelines nur in der vorgesehenen Richtung unterkaskadieren. Für ihren konkreten Fall gibt es meiner Meinung nach keine Lösung von Haus aus. Sie müssten eine eigene Datenabfrage erstellen.

Re: Gruppierung nach schulinternen Funktionen

Verfasst: Mittwoch 25. November 2020, 23:55
von apuleius
Gibt es ein Fehler-Logbuch für die eingelesenen SPD-Dateien? Ich habe die folgenden Datenabfragen definiert und in dem SchILD-Pipelines-Verzeichnis abgelegt, jedoch taucht es nicht in den Datenquellen auf.

Code: Alles auswählen

[Queries]
__gryFunktionen
__qryFunktionenLehrerAktuellerAbschnitt

;-------------------------------------------------------------------------------------
; Schulinterne Funktionen
;
[Query__qryFunktionen]
Name=__qryFunktionen
InitCommand=select ID, Bezeichnung from K_Schulfunktionen where ID=-1
Command1=select S.ID, S.Bezeichnung
Command2=from K_Schulfunktionen as S
Command3=where S.SchulnrEigner=$SCHULNR$ 
Command4=order by S.Sortierung

[Datasource__qryFunktionen]
Name=__dsFunktionen

[Pipeline__qryFunktionen]
Name=__pplnFunktionen
OpenDatasource=1
CloseDatasource=1
SkipWhenNoRecords=0
UserName=xxFunktionsdaten

;-------------------------------------------------------------------------------------
; Lehrerdaten mit gegebener Funktion im aktuellem Abschnitt
;

[Query__qryFunktionenLehrerAktuellerAbschnitt]
Name=__qryFunktionenLehrerAktuellerAbschnitt
InitCommand=select '' as NameVorname, Kuerzel from K_Lehrer where ID=-1
Command1=select L.Nachname + ', ' + L.Vorname, L.Kuerzel
Command2=from K_Lehrer as L, EigeneSchule as ES
Command3=where L.Sichtbar = '+' and L.SchulnrEigner=$SCHULNR$ and
Command4=exists (select 1 from LehrerFunktionen as F where F.Funktion_ID=:ID
Command5=and F.Lehrer_ID=L.ID and F.Jahr=ES.Schuljahr and F.Abschnitt=ES.SchuljahrAbschnitt)
Command6=order by L.Nachname
MasterSource=__dsFunktionen

[Datasource__qryFunktionenLehrerAktuellerAbschnitt]
Name=__dsFunktionenLehrerAktuellerAbschnitt

[Pipeline__qryFunktionenLehrerAktuellerAbschnitt]
Name=__pplnFunktionenLehrerAktuellerAbschnitt
OpenDatasource=1
CloseDatasource=1
SkipWhenNoRecords=0
UserName=xxFunktionenLehrerAktuellerAbschnittsdaten

Re: Gruppierung nach schulinternen Funktionen

Verfasst: Donnerstag 26. November 2020, 10:52
von Raffenberg
Ich habe ihnen anbei einen Report als Beispiel gebaut, der das gewünschte Leisten sollte und vielleicht noch ein wenig verschönert werden muss.
Schulfunktionen.rtm
(22.45 KiB) 102-mal heruntergeladen

Re: Gruppierung nach schulinternen Funktionen

Verfasst: Donnerstag 26. November 2020, 12:27
von Uli Dierkes
Bildschirmfoto 2020-11-26 um 12.25.02.png
Bildschirmfoto 2020-11-26 um 12.25.02.png (21.01 KiB) 1661 mal betrachtet

Re: Gruppierung nach schulinternen Funktionen

Verfasst: Donnerstag 26. November 2020, 14:09
von apuleius
Auweia. Vielen Dank.

Ich habe der Lehrerdatenabfrage noch ein Auswahlkriterium für die Sichtbarkeit hinzugefügt.

In meiner SPD-Datei fehlte noch ein "as NameVorname", denn mit dem namenlosen Ausdruck/Verkettung kann RBuilder nichts anfangen, also ist es nicht einfach reihenfolgebasiert.

Re: Gruppierung nach schulinternen Funktionen

Verfasst: Freitag 4. Dezember 2020, 12:36
von apuleius
Raffenberg hat geschrieben: Donnerstag 26. November 2020, 10:52 Ich habe ihnen anbei einen Report als Beispiel gebaut, der das gewünschte Leisten sollte und vielleicht noch ein wenig verschönert werden muss.
Schulfunktionen.rtm
Vielen Dank noch einmal hierfür. Wenn ich in dem BeforePrint-Ereignis des Oberberichtes die RAP-Funktion Datenliste aufrufe, scheint der Join auf der Funktion-ID nicht richtig zu funktionieren, sodass für die Gruppen nicht immer die korrekten Mitarbeiter aufgeführt werden. Ich habe es auch mit dem BeforePrint-Ereignis von dem Berichtkopf ausprobiert. Mache ich etwas falsch?

Code: Alles auswählen

procedure ReportBeforePrint;
var emailsp, emailsd, vnames, nnames, emails, emailp, emaild, nname, vname, mail : String;
  i : Integer;
  lLabel: TppLabel;
begin
  emailsp := DatenListe(DQ_Lehrer, 'EMail', ';', true);  
  emailsd := DatenListe(DQ_Lehrer, 'EMailDienstlich', ';', true);
  nnames := DatenListe(DQ_Lehrer, 'Nachname', ';', true);
  vnames := DatenListe(DQ_Lehrer, 'Vorname', ';', true);
  emails := '';
  for i := 1 to AnzahlElemente(vnames, ';') do
  begin
    emailp := EinzelElement(emailsp, ';', i);
    emaild := EinzelElement(emailsd, ';', i);
    nname := EinzelElement(nnames, ';', i);
    vname := EinzelElement(vnames, ';', i);
    mail := '';
    If emaild <> '' Then
      mail := emaild
    Else
      If emailp <> '' Then
        mail := emailp;
    If mail <> '' Then
    Begin
      emails := emails + vname + ' ' + nname + ' <' + mail + '>';
      if (i < AnzahlElemente(vnames, ';')) Then
        emails := emails + ', ';
    End;
  End;
  Label2.HyperLink := 'mailto:' + emails
end;
Mitarbeiter Gruppen E-Mails.rtm
(31.44 KiB) 74-mal heruntergeladen

Re: Gruppierung nach schulinternen Funktionen

Verfasst: Freitag 4. Dezember 2020, 13:10
von Raffenberg
Ich habe ihre Datensätze mit einem Textfeld ausgegeben und mit den generierten Datensätzen, sowie mit den Datentabellen verglichen. Ich kann keinen Unterschied erkennen. Im Hauptreport wird nur der erste Datensatz des Subreports angezeigt.

Re: Gruppierung nach schulinternen Funktionen

Verfasst: Samstag 5. Dezember 2020, 11:48
von apuleius
Bei mir werden bei jeder Gruppe wiederholt die Daten der ersten Gruppe auf der jeweiligen Seite ausgegeben.

Edit: Jetzt funktioniert es. Ich habe fälschlicherweise angenommen, die Gruppierung wäre bereits aktiviert. Nachdem ich die Gruppierung aktiviert habe, war es möglich den Code in Groups[0] > Header > BeforePrint zu kopieren, der dann wirklich gruppenweise, nicht seitenweise aufgerufen wird.

Re: Gruppierung nach schulinternen Funktionen

Verfasst: Montag 12. September 2022, 13:16
von J. Siegert
Hallo,
unser Sekretariat hat heute ebenfalls Interesse nach dieser Gruppierung geäußert. Wäre es möglich, dass Sie die funktionierende Liste hier hochladen?
Danke schön!
Viele Grüße
J. Siegert