Texte zur Laufzeit aus externer Quelle nachladen

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

Moderatoren: A. Schüller, Raffenberg, Pfotenhauer

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

Texte zur Laufzeit aus externer Quelle nachladen

Beitrag von D.Jakel »

Guten Tag, ist es möglich, z.B. aus einer Excel-Tabelle oder einer csv-Datei Werte dynamisch nachzuladen, die es in der Datenbank nicht gibt?
Beispiel: Namen der Klassenleitungsteams des nächsten Schuljahres in Anschreiben verwenden.
Oder kann ich sie z.B als kommaseparierte Liste innerhalb eines Reports so ablegen, dass ich sie einfach ohne große Aktion per Copy&Paste in den Report einfügen und dann mithilfe von Bedingungen dynamisch verwenden kann?
Danke für Hinweise.
mfG, D.Jakel
Benutzeravatar
Uli Dierkes
Beiträge: 1359
Registriert: Sonntag 2. Dezember 2018, 17:02
Wohnort: Wegberg
Schulform: Gesamtschule (a.D.)
Motto: Nicht verzagen ... fragen
Kontaktdaten:

Re: Texte zur Laufzeit aus externer Quelle nachladen

Beitrag von Uli Dierkes »

Vermutlich können es hier mitlesende Programmier-Cracks besser, kürzer und eleganter.
Aber unelegant müsste es auch so klappen:
Teilen Sie an der passende Stelle (wo die Namen auftauchen sollen) Ihren Text in zwei Teile (zwei Textlabels). Dazwischen platzieren Sie, am besten in einer separaten Zeile, damit die Namenslänge kein Problem macht, ein weiteres Textlabel. Dieses programmieren Sie unter "Berechnungen" im Ereignis OnGetText so:
begin
if Schueler['Klasse'] = '5a' then Text := 'Michael Müller und Frieda Kahlo' else
if Schueler['Klasse'] = '5b' then Text := 'Martina Almelo' else
if Schueler['Klasse'] = '5c' then Text := 'Karla Fux und Max Moritz' else
if Schueler['Klasse'] = '6a' then Text := 'Tycho Brahe und Alice Schwarzer' else
... undsoweiter bis zum
;
end;
8-)      .   Einen guten Tag wünscht     Uli Dierkes
Kurosinski
Beiträge: 996
Registriert: Sonntag 19. Mai 2019, 19:53
Schulform: Gesamtschule

Re: Texte zur Laufzeit aus externer Quelle nachladen

Beitrag von Kurosinski »

Hallo,

die Idee von Herrn Dierkes ist schon gut.
Alternativ findet man in den aktuellen INI. Datei Zeugnissen auch gute Möglichkeiten, variable Texte zu importieren.

Dennoch bin ich nicht sicher, ob es nicht einfacher wäre, die nötigen Daten aus Schild zu exportieren (als Excel Datei, CSV), um damit dann einen Serienbrief in Word zu erstellen.

Gerade bei dem Anschreiben an die Schüler einer neuen Klasse wäre das me einfacher.
D.Jakel
Beiträge: 1115
Registriert: Sonntag 2. Dezember 2018, 18:13
Schulform: Gymnasium

Re: Texte zur Laufzeit aus externer Quelle nachladen

Beitrag von D.Jakel »

Ja, das ist jedenfalls immer mit Programmierarbeit verbunden und "on the fly" eben nicht so einfach umzusetzen. Ich stehe eben jedes Jahr erneut vor der Frage, wie ich die spontanen Ideen meines Chefs in Briefen so vorbereiten kann, dass ich im Moment des Auftretens nicht auch noch über den Modus nachdeneken muss. Irgendwie fürchte ich, dass ich auf Serienbriefe umsteigen muss, damit das Layout von Briefen flexibel bleibt.
mfG, D.Jakel
A.Löser
Fachberater*in
Beiträge: 173
Registriert: Montag 3. Dezember 2018, 19:56
Schulform: Sek I

Re: Texte zur Laufzeit aus externer Quelle nachladen

Beitrag von A.Löser »

Als Idee:
Legen Sie für die Klassen des neuen Schuljahres
eine TXT-Datei Klassenleitungen.txt an die so aufgebaut ist:
05a=Frau Meier und Herr Berger (05a=Frau Meier, Herr Berger geht nicht > Komma nicht erlaubt,)
05b=Herr Schulze und Frau Schmitz ( Semikolon als Trennzeichen wäre möglich)
06a=Herr Daniels und Frau Ganten
...
...

Erzeugen Sie ein TStringlist-Element Klassenleitung

Im Report BeforPrint können Sie dann die TXT-Datei in diese StringList einlesen
Klasenleitung.LoadFromFile('Verzeichnis\Klassenleitungen.txt');

Damit ist es dann möglich, über die Klassenbezeichnung an die Klassenleitung zu kommen.
AktuelleKlassenleitung:=Klassenleitung.Values['05b'] liefert 'Herr Schulze und Frau Schmitz'

Das muss dann noch im eigentlichen Brieftext über einen Platzhalter (z.B. $Klassenleitung$ per ReplaceText() in Abhängigkeit von der Klasse des aktuellen Schülers eingefügt werden.

Der Teufel steck im Detail:
Sind alle Schüler schon im neuen Schuljahr mit den dann passenden Klassen ?
Dann können Sie die Klassenbezeichnungen aus der Datenquelle Schueler benutzen.

Ist der Schuljahreswechsel noch nicht erfolgt, dann müssen für die Bestandsschüler
die Klassenbezeichnungen aus dem Feld Folgeklasse der Datenquelle Lernabschnitte genommen werden.

Wenn Schüler aus der Neuaufnahme noch nicht nach Aktiv übertragen wurden , dann sollten bei diesen schon die "richtigen" künftigen Klassen eingetragen sein. Auch für diese Schüler kann dann die Klassenbezeichnung aus der Datenquelle Schueler genommen werden.
Mit freundlichen Grüßen
A. Löser
D.Jakel
Beiträge: 1115
Registriert: Sonntag 2. Dezember 2018, 18:13
Schulform: Gymnasium

Re: Texte zur Laufzeit aus externer Quelle nachladen

Beitrag von D.Jakel »

Guten Tag, danke für die Vorschläge, aber ich denke, dass ich den umgekehrten Weg gehen werde und eine Standardtabelle für einen Seriendruck exportiere, auf die dann ein Word-Seriendruck zugreift.
Ich stelle einfach fest, dass die Reports für Briefe für den Standardanwender (Schulleiter, Sekretärinnen, meine Vertretung, ...) im Notfall praktisch nicht zu bedienen sind, da fühlen sie sich mit WORD besser.
mfG, D.Jakel
Antworten

Zurück zu „Drucken / Reportdesigner“