Zeilenumbruch in Platzhalter für RTF-Datei / Seriendruck

Entwicklung und Austausch neuer Formulare

Moderatoren: Raffenberg, A. Schüller, Pfotenhauer

Antworten
Stuewe
Beiträge: 5
Registriert: Donnerstag 12. Januar 2023, 21:07
Schulform: BK
Kontaktdaten:

Zeilenumbruch in Platzhalter für RTF-Datei / Seriendruck

Beitrag von Stuewe »

Guten Tag zusammen,

nach einiger Recherche in diesem und anderen Foren komme ich nicht weiter und bitte um Ideen:

Ich möchte mit einem (neuen) Platzhalter $BetriebAdresse$ unserem Sekretariat den bequemen Zugriff auf Name und Anschrift des obersten Betriebs in den Schülerdaten ermöglichen. Da es ja m.W. kein Datenbankfeld dafür gibt, möchte ich den String live in der Funktion "ErsetzePlatzhalter" aus den Datenbankfeldern der SchuelerAdressen-Quelle erzeugen (u.a. AllgAdrName usw.). Der einzelne Abruf von Name, Straße, etc. funktioniert unproblematisch, nur das Zusammensetzen des Strings bereitet Schwierigkeiten, und zwar nur beim Zeilenumbruch.

Der aktuelle Stand sieht so aus:

Code: Alles auswählen

  //Betriebe-Variablen
  BetriebName := SchuelerAdressen['AllgAdrName1'];
  BetriebStrasse := SchuelerAdressen['AllgAdrStrasse'];
  BetriebPLZ := SchuelerAdressen['AllgAdrPLZ'];
  BetriebOrt := SchuelerAdressen['Ortsname'];
  BetriebVertragsart := SchuelerAdressen['Vertragsart'];
  BetriebVertragsbeginn := SchuelerAdressen['Vertragsbeginn'];
  BetriebVertragsende := SchuelerAdressen['Vertragsende'];
  BetriebVertragsart := SchuelerAdressen['Vertragsart'];

  // StringBuilder BetriebAdresse
  BetriebAdresse := BetriebName + chr(13) + BetriebStrasse + chr(13) + BetriebPLZ + ' ' + BetriebOrt;
Ich habe folgende erfolglos Varianten probiert:

Code: Alles auswählen

\u0208 - Unicode Linebreak
\par - RTF-Linebreak
\n - HTML Linebreak
chr(13) - lt. Forum hier
chr(13) + chr(10) - lt. Forum hier
Leider hat nichts davon funktioniert. Das Ergebnis (unterste Zeile, Zelle ganz links) ist immer gleich (schlecht):
Bild

Herzlichen Dank für neue Ideen!
Sebastian Stüwe
Käthe-Kollwitz-Berufskolleg, Hagen
Kurosinski
Beiträge: 774
Registriert: Sonntag 19. Mai 2019, 19:53
Schulform: Gesamtschule

Re: Zeilenumbruch in Platzhalter für RTF-Datei / Seriendruck

Beitrag von Kurosinski »

Nutzen sie in dem Report eine Tabelle?

Bei einem Label Feld funktioniert es mit chr(13) - sofern es passend vergrößert wird (werden kann) und -meine ich- (char?) Wrap angeklickt ist.
Benutzeravatar
Raffenberg
Beiträge: 2255
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: Zeilenumbruch in Platzhalter für RTF-Datei / Seriendruck

Beitrag von Raffenberg »

Hallo Herr Stüwe,
können Sie den Report hier anfügen? Hilfe fällt dann leichter.
Mit freundlichen Grüßen
Jens Raffenberg
Stuewe
Beiträge: 5
Registriert: Donnerstag 12. Januar 2023, 21:07
Schulform: BK
Kontaktdaten:

Re: Zeilenumbruch in Platzhalter für RTF-Datei / Seriendruck

Beitrag von Stuewe »

Hallo zusammen,

herzlichen Dank schon für die Reaktionen. Den Report und eine Test-RTF habe ich angehängt; es handelt sich mehr oder weniger um den Standard-Schüler-Report mit ein paar zusätzlichen Platzhaltern, die ich in der Funktion "ErsetzePlatzhalter" hinzugefügt habe.

Eine rudimentäre Beispiel-RTF-Datei zum Testen der Platzhalter habe ich auch angehängt.
Sie sehen dort das Problem in der letzten Tabellenzeile: Der (von mir so kommentierte) Stringbuilder in ObjPascal (siehe in o.g. Funktion, Z. 151) funktioniert leider nicht wie erwartet, weil ich (vermutlich) den falschen Linebreak-Befehl verwende.

@Kurosinski: Ja und nein - es funktioniert weder in der Tabelle noch außerhalb.

Herzlichen Dank im Voraus und alles Gute!
Sebastian Stüwe
Dateianhänge
Variablen aus SchuelerAdressen.rtf
(51.89 KiB) 8-mal heruntergeladen
Serienbrief Schüler.rtm
(149.75 KiB) 14-mal heruntergeladen
Kurosinski
Beiträge: 774
Registriert: Sonntag 19. Mai 2019, 19:53
Schulform: Gesamtschule

Re: Zeilenumbruch in Platzhalter für RTF-Datei / Seriendruck

Beitrag von Kurosinski »

Evtl könnte das hier helfen, da es um RTF Felder geht:
viewtopic.php?f=14&t=3012&p=17277&hilit ... zen#p17277
Stuewe
Beiträge: 5
Registriert: Donnerstag 12. Januar 2023, 21:07
Schulform: BK
Kontaktdaten:

Re: Zeilenumbruch in Platzhalter für RTF-Datei / Seriendruck

Beitrag von Stuewe »

Danke, das schaue ich mir etwas detaillierter an. Ggf. ist mein Stringbuilder nicht ganz RAP-konform; der Linebreak (CR) wird im Beispiel dort aber auch als chr(13) angegeben.
Benutzeravatar
Raffenberg
Beiträge: 2255
Registriert: Dienstag 25. September 2018, 15:22
Schulform: Gymnasium
Kontaktdaten:

Re: Zeilenumbruch in Platzhalter für RTF-Datei / Seriendruck

Beitrag von Raffenberg »

Hallo Herr Stüwe,
Sie haben ja in Ihrem Dokument auf der rechten Seite das Zielergebnis mit Zeilenwechsel vorgegeben. In Schild wird auch aus diesem Text eine einzelne Zeile gemacht. Aus
Müller & Sohn
Mühlengasse 7
58095 Hagen
wird
Müller & Sohn Mühlengasse 7 58095 Hagen
Sie erkennen daran, dass rtf-Felder im Reportdesigner keine Zeilenumbrüche in Tabellenstrukturen darstellen können. Sie können das leicht ausprobieren, indem Sie eine solche Tabelle aus dem Originaldokument kopieren und dann in ein rtf-Feld in Schild einfügen. Deshalb scheiter in dieser Umgebung ein Zeilenumbruch per se. Der Reportdesigner kennt nur einen beschränkten Satz an Auszeichnungsbefehlen. Vielleicht wird das mit dem neueren Reportdesigner besser.

Wenn Sie Ihre Platzhalter aus der Tabellenstruktur lösen und als normalen Text niederschreiben, funktioniert der Zeilenumbruch, indem Sie die Daten mit dem Text '\par ' (Leerzeichen nicht übersehen) verbinden. Tauschen Sie ihre Codezeile gegen diese aus:

Code: Alles auswählen

// StringBuilder BetriebAdresse
BetriebAdresse := BetriebName + '\par ' + BetriebStrasse + '\par ' + BetriebPLZ + ' ' + BetriebOrt;
Tipp: Sie erstellen Ihr rtf anscheinend in Word. Word bläst rtf-Dokumente mit sehr vielen Befehlen auf, die Schild nicht kennt. Dadurch werden die Dokumente recht groß. Ich empfehle das Programm WordPad, welches mit Schild ausgeliefert wird. Es verschlankt ein rtf enorm, indem es überschüssige Befehle entfernt. Sie können übrigens jedes rtf-Dokument im Editor öffnen. Dort sehen Sie, dass es sich um eine Auszeichnungssprache handelt.
Mit freundlichen Grüßen
Jens Raffenberg
Stuewe
Beiträge: 5
Registriert: Donnerstag 12. Januar 2023, 21:07
Schulform: BK
Kontaktdaten:

Re: Zeilenumbruch in Platzhalter für RTF-Datei / Seriendruck

Beitrag von Stuewe »

Guten Abend Herr Raffenberg,

besten Dank für die ausführliche Erklärung und den Tipp mit dem Wordpad - das werde ich gern direkt an unser Sekretariat weitergeben (wir übertragen gerade noch alte IBIS-Vorlagen, die aus Word kommen).

Herzliche Grüße aus Hagen
Sebastian Stüwe
Antworten

Zurück zu „Formulare - Austausch und Entwicklung“