Seite 1 von 1
dynamicLoadingSubreport mit wechselnden Inhalten
Verfasst: Samstag 14. November 2020, 10:43
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 ?
Re: dynamicLoadingSubreport mit wechselnden Inhalten
Verfasst: Sonntag 15. November 2020, 16:55
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.
Re: dynamicLoadingSubreport mit wechselnden Inhalten
Verfasst: Sonntag 15. November 2020, 20:00
von A.Löser
Guten Tag Herr Sprung,
Vielen Dank für den beschriebenen Lösungsansatz.
Re: dynamicLoadingSubreport mit wechselnden Inhalten
Verfasst: Montag 16. November 2020, 10:36
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.
Re: dynamicLoadingSubreport mit wechselnden Inhalten
Verfasst: Montag 16. November 2020, 19:29
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.
Re: dynamicLoadingSubreport mit wechselnden Inhalten
Verfasst: Dienstag 17. November 2020, 11:29
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 (3.95 KiB) 899 mal betrachtet
Re: dynamicLoadingSubreport mit wechselnden Inhalten
Verfasst: Dienstag 17. November 2020, 20:38
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.
Re: dynamicLoadingSubreport mit wechselnden Inhalten
Verfasst: Mittwoch 18. November 2020, 12:07
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.
Re: dynamicLoadingSubreport mit wechselnden Inhalten
Verfasst: Dienstag 21. November 2023, 13:20
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