dynamicLoadingSubreport mit wechselnden Inhalten

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

Moderatoren: A. Schüller, Raffenberg, Pfotenhauer

Antworten
A.Löser
Fachberater*in
Beiträge: 173
Registriert: Montag 3. Dezember 2018, 19:56
Schulform: Sek I

dynamicLoadingSubreport mit wechselnden Inhalten

Beitrag von A.Löser »

Guten Tag.
Ich suche eine Lössung für dieses Problem:
In einem Serienbrief an Schüler unterschiedlicher Klassen soll die eingescannte Unterschrift des jeweiligen
Klassenlehrers erscheinen.
Dazu habe ich die Unterschriften eingescannt und die jpg-Dateien in jeweils eigenen Subreports
eingebaut. Diese heißen dann z.B. CR-unterschrift.rtm (CR ist das Kurzzeichen des Klassenlehrers)
und liegen im Ordner Subreports.

Meine Idee war, aus der Datenquelle Schueler das Lehrerkurzzeichen zu nehmen und damit einen Dateinamen (s.o.) zusamenzusetzen,
der dann mit dynamicLoadingSubreport.filename:=Dateiname zu wechselnden Inhalten des Subreports führt.

Leider klappt das so nicht.

Hat jemand einen Lösungsvorschlag ?
Mit freundlichen Grüßen
A. Löser
Christoph Sprung
Beiträge: 415
Registriert: Montag 3. Dezember 2018, 18:43
Schulform: WbK (a. D.)

Re: dynamicLoadingSubreport mit wechselnden Inhalten

Beitrag von Christoph Sprung »

A.Löser hat geschrieben: Samstag 14. November 2020, 10:43 Leider klappt das so nicht.

Hat jemand einen Lösungsvorschlag ?
Guten Tag Herr Löser,

vielleicht nicht die eleganteste Lösung, aber so könnte es klappen:
1. Für jede Unterschrift-Graphik einen neuen Report (nicht Subreport) erzeugen, mit der Graphik im Titelband.
2. Jeden dieser Reports im Verzeichnis 'Subreports' speichern (Name: Fachlehrerkürzel.rtm)
3. Im Report, der die Unterschriften ausgeben soll, ebensoviele Dynamische Subreports im Detailband anlegen und jeweils mit einem der zuvor angelegten Subreports verbinden - unter 'Filename' müsste dann für jeden der Dynamischen Subreports der zusammengesetzte Name aus Lehrerkürzel und '.rtm' stehen.
4. Im Ereignis 'DetailBeforePrint' ist einzutragen

begin

DynamicLoadingSubReport1.visible:= Schueler['Lehrer'] + '.rtm' = DynamicLoadingSubReport1.Filename;
DynamicLoadingSubReport2.visible:= Schueler['Lehrer'] + '.rtm' = DynamicLoadingSubReport2.Filename;
DynamicLoadingSubReport3.visible:= Schueler['Lehrer'] + '.rtm' = DynamicLoadingSubReport3.Filename;
...
...

end;

Ziemlich aufwändig, hat bei meinem Test aber funktioniert.
Grüße aus Bochum
Christoph Sprung
A.Löser
Fachberater*in
Beiträge: 173
Registriert: Montag 3. Dezember 2018, 19:56
Schulform: Sek I

Re: dynamicLoadingSubreport mit wechselnden Inhalten

Beitrag von A.Löser »

Guten Tag Herr Sprung,

Vielen Dank für den beschriebenen Lösungsansatz.
Mit freundlichen Grüßen
A. Löser
Benutzeravatar
Falko Müller
Fachberater*in
Beiträge: 1218
Registriert: Donnerstag 4. Oktober 2018, 20:23
Schulform: Gymnasium

Re: dynamicLoadingSubreport mit wechselnden Inhalten

Beitrag von Falko Müller »

Hallo Herr Löser,
eine andere Möglichkeit wäre, die Unterschriften in Schild als Foto bei den einzelnen Lehrern abzulegen (sofern man diese nicht für tatsächliche Lehrerbilder nutzt).
Dann müsste man in den Report im Detailbereich des Schülers einen Subreport mit Datenquelle "Lehrer" einfügen. Dort filtert man im Ereignis SubreportOnPrint auf den Klassenlehrer:

Code: Alles auswählen

begin
 SetzeFilter(Lehrer,'');
 SetzeFilter(Lehrer,'Kuerzel='+SchuelerKlasse['KlassenlehrerKrz']);
end;
In den Detailbereich des Subreports kommt dann ein DBImage mit "Foto" aus der Quelle "LehrerFotos".
Das hat bei mir funktioniert. Die Reporterstellung dauert dann aber etwas länger.
Freundliche Grüße
Falko Müller
A.Löser
Fachberater*in
Beiträge: 173
Registriert: Montag 3. Dezember 2018, 19:56
Schulform: Sek I

Re: dynamicLoadingSubreport mit wechselnden Inhalten

Beitrag von A.Löser »

Guten Tag Herr Müller !
Auch Ihnen vielen Dank für die Anregung. Ich werde sie so bald wie möglich mal testen.
Mit freundlichen Grüßen
A. Löser
Benutzeravatar
wschrewe
Fachberater*in
Beiträge: 1963
Registriert: Dienstag 25. September 2018, 17:36
Schulform: BK (Pensionär)
Kontaktdaten:

Re: dynamicLoadingSubreport mit wechselnden Inhalten

Beitrag von wschrewe »

Noch einfacher geht es, wenn Sie an die Stelle, wo die Unterschrift erscheinen soll, ein Image plazieren und dann in Detailbeforeprint mit Inhalt füllen:

Code: Alles auswählen

procedure Detailbeforeprint;
begin
  Image1.Picture.LoadFromFile('Pfad_zur_Unterschrift + Schueler['Lehrer'] +  '_Unterschrift.jpg')
end;
Der angehängte kleine Report zeigt, wie es funktioniert. Die Unterschriften zweier bekannter Persönlichkeiten habe ich angehängt. ;)
Müller-Lüdenscheid.png
Müller-Lüdenscheid.png (3.95 KiB) 898 mal betrachtet
Dynamisches_Image.rtm
(7.97 KiB) 64-mal heruntergeladen
Dateianhänge
Dr-Klöbner.png
Dr-Klöbner.png (2.53 KiB) 898 mal betrachtet
Mit freundlichen Grüßen
Walter Schrewe
"If all else fails, read the instructions" (Donald E. Knuth, letzter TeX - Hilfehinweis)
A.Löser
Fachberater*in
Beiträge: 173
Registriert: Montag 3. Dezember 2018, 19:56
Schulform: Sek I

Re: dynamicLoadingSubreport mit wechselnden Inhalten

Beitrag von A.Löser »

Hallo Herr Schrewe,
das ist wohl die eleganteste Lösung. Vielen Dank dafür.
Bisher war mir nicht bekannt, dass man zur Laufzeit einem Image-Element wechselnde Bilddateien zuordnen kann.
Mit freundlichen Grüßen
A. Löser
Christoph Sprung
Beiträge: 415
Registriert: Montag 3. Dezember 2018, 18:43
Schulform: WbK (a. D.)

Re: dynamicLoadingSubreport mit wechselnden Inhalten

Beitrag von Christoph Sprung »

A.Löser hat geschrieben: Dienstag 17. November 2020, 20:38 Bisher war mir nicht bekannt, dass man zur Laufzeit einem Image-Element wechselnde Bilddateien zuordnen kann.
Ich schließe mich Herrn Löser an - eine schöne Lösung. Ich bin bisher gar nicht auf die Idee gekommen 'LoadFromFile' für etwas anderes als das Laden von Texten zu benutzen.
Grüße aus Bochum
Christoph Sprung
SekretariatMFG
Beiträge: 1
Registriert: Dienstag 21. November 2023, 09:14
Schulform: Gesamtschule

Re: dynamicLoadingSubreport mit wechselnden Inhalten

Beitrag von SekretariatMFG »

Hallo,
ich bekomme das Einfügen, egal auf welchem Weg, nicht hin.
Mittlerweile habe ich sogar einen Report, wo mir die Unterschriften angezeigt werden, aber in dem Brief dann wieder nicht.
Ich habe das mit Grafik einfügen versucht und mit DBImage....Beides kein Ergebnis.
Kann mir da jemand helfen.
zum anderen habe ich immer eine Umrandung bei den vorgefertigten Briefen, die ich aber auch nicht weg bekommen.
VG Gabi
Antworten

Zurück zu „Drucken / Reportdesigner“