FastReport Positionstext ohne RFT-Formatierung ausgeben: Unterschied zwischen den Versionen
(→Vorgehensweise) |
|||
Zeile 6: | Zeile 6: | ||
== Hintergrund == | == Hintergrund == | ||
− | In einem Report für ein Angebot | + | In einem Report für ein Angebot/einen Auftrag oder eine Rechnung kann man das Positionen-Textfeld als RTF-Feld einfügen. Dieses Feld kann formatierten Text beinhalten. |
So weit, so gut. | So weit, so gut. | ||
Zeile 19: | Zeile 19: | ||
* Der Bereich, in dem der Text angezeigt wird (also die Grafik), wird - ja nach Export-Optionen - u.U. etwas unsauber ausgegeben. | * 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. | + | Um diese Nachteile zu umgehen, kann man in den Report anstelle des RTF-Feldes eine Variable mit dem Namen "AuftrPosTextOhneRtf" (Angebot/Auftrag) bzw. "RechPosTextPositionOhneRtf" (Rechnung) 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! | ||
Zeile 29: | Zeile 29: | ||
: AuftrPosTextOhneRtf | : AuftrPosTextOhneRtf | ||
+ | |||
+ | bzw. | ||
+ | |||
+ | : RechPosTextPositionOhneRtf | ||
:(genau so, mit Groß- und Kleinbuchstaben!) | :(genau so, mit Groß- und Kleinbuchstaben!) | ||
*Fügen Sie ein Child-Band des Detail-Bands ein. | *Fügen Sie ein Child-Band des Detail-Bands ein. | ||
− | :Klicken Sie dazu auf das Detail-Band und wählen aus dem Menü "Child- | + | :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". | :Geben Sie dem Band einen aussagekräftigen Namen, z.B. "ChildPosText". | ||
− | *Ziehen Sie aus dem Register "Variablen" die Variable "AuftrPosTextOhneRtf" in dieses Band. | + | *Ziehen Sie aus dem Register "Variablen" die Variable "AuftrPosTextOhneRtf" bzw. "RechPosTextOhneRtf" in dieses Band. |
:Ein Feld (Memo) wird eingefügt. Ziehen sie es auf die gewünschte Größe. | :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". | :Geben Sie dem Band und dem Feld die Eigenschaft "Dehnen". | ||
Zeile 50: | Zeile 54: | ||
end; | end; | ||
+ | |||
+ | bzw. bei der Rechnung | ||
+ | |||
+ | |||
+ | procedure ChildPosTextOnBeforePrint(Sender: TfrxComponent); | ||
+ | begin | ||
+ | ChildPosText.Visible := <RechPosTextOhneRtf> > ''; | ||
+ | end; | ||
+ | |||
+ | |||
+ | |||
:Dieser Code unterdrückt das Band, wenn die Variable leer ist. | :Dieser Code unterdrückt das Band, wenn die Variable leer ist. |
Version vom 26. Januar 2018, 22:21 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/einen Auftrag oder eine Rechnung 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" (Angebot/Auftrag) bzw. "RechPosTextPositionOhneRtf" (Rechnung) 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
bzw.
- RechPosTextPositionOhneRtf
- (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" bzw. "RechPosTextOhneRtf" 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;
bzw. bei der Rechnung
procedure ChildPosTextOnBeforePrint(Sender: TfrxComponent); begin ChildPosText.Visible := <RechPosTextOhneRtf> > ; end;
- Dieser Code unterdrückt das Band, wenn die Variable leer ist.