FastReport Positionstext ohne RFT-Formatierung ausgeben: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „== Allgemeines == Beim Drucken eines Angebots/Auftrags kann man den Positionstext, der normalerweise RTF-Formatierung beinhaltet, als reinen Text ausgeben.…“) |
|||
Zeile 21: | Zeile 21: | ||
Um diese Nachteile zu umgehen, kann man in den Report anstelle des RTF-Feldes eine Variable mit dem Namen "AuftrPosTextOhneRtf" festlegen und einfügen. | 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! | Das Druckprogramm "GevitasFormPrint" stellt in dieser Variablen den reinen Text des RTF-Feldes dar, ohne Steuerzeichen! | ||
+ | |||
+ | == Vorgehensweise == | ||
+ | |||
+ | Legen Sie eine neue Variable im Report an, wie ''[[FastReport:_Anlegen_und_verwenden_von_Variablen_im_Report#Anlegen_einer_Variablen|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. |
Version vom 26. Januar 2018, 22:12 Uhr
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.