FastReport Positionstext ohne RFT-Formatierung ausgeben
1 Allgemeines
Beim Drucken eines Angebots/Auftrags kann man den Positionstext, der normalerweise RTF-Formatierung beinhaltet, als reinen Text ausgeben.
2 Hintergrund
In einem Report für ein Angebot oder einen Auftrag kann man das Positionen-Textfeld als RTF-Feld einfügen. Dieses Feld kann formatierten Text beinhalten.
So weit, so gut.
Das Problem ist, dass so formatierte Felder beim Export in PDF-Dateien nicht als Text exportiert werden (bis FastReport© 5), sondern als Grafik. (Ab FastReport© 6 soll das nicht mehr so sein).
Das hat zwei Nachteile:
- Die PDF-Datei wird größer, bei viel Text auch viel größer!
- Der Bereich, in dem der Text angezeigt wird (also die Grafik), wird - ja nach Export-Optionen - u.U. etwas unsauber ausgegeben.
Um diese Nachteile zu umgehen, kann man in den Report anstelle des RTF-Feldes eine Variable mit dem Namen "AuftrPosTextOhneRtf" festlegen und einfügen. Das Druckprogramm "GevitasFormPrint" stellt in dieser Variablen den reinen Text des RTF-Feldes dar, ohne Steuerzeichen!
3 Vorgehensweise
- Legen Sie eine neue Variable im Report an, wie hier beschrieben.
- Nennen Sie die Variable
- AuftrPosTextOhneRtf
- (genau so, mit Groß- und Kleinbuchstaben!)
- Fügen Sie ein Child-Band des Detail-Bands ein.
- Klicken Sie dazu auf das Detail-Band und wählen aus dem Menü "Child-band einfügen".
- Geben Sie dem Band einen aussagekräftigen Namen, z.B. "ChildPosText".
- Ziehen Sie aus dem Register "Variablen" die Variable "AuftrPosTextOhneRtf" in dieses Band.
- Ein Feld (Memo) wird eingefügt. Ziehen sie es auf die gewünschte Größe.
- Geben Sie dem Band und dem Feld die Eigenschaft "Dehnen".
- Klicken Sie im Objekt-Inspektor links auf Ereignisse und doppelklicken Sie auf "OnBeforeClick".
- Schreiben Sie diesen Code:
procedure ChildPosTextOnBeforePrint(Sender: TfrxComponent); begin ChildPosText.Visible := <AuftrPosTextOhneRtf> > ; end;
- Dieser Code unterdrückt das Band, wenn die Variable leer ist.