FastReport Positionstext ohne RFT-Formatierung ausgeben: Unterschied zwischen den Versionen
Zeile 2: | Zeile 2: | ||
Beim Drucken eines Angebots/Auftrags kann man den Positionstext, der normalerweise RTF-Formatierung beinhaltet, als reinen Text ausgeben. | Beim Drucken eines Angebots/Auftrags kann man den Positionstext, der normalerweise RTF-Formatierung beinhaltet, als reinen Text ausgeben. | ||
+ | |||
+ | Diese Funktion steht ab Version 3.1.18209 zur Verfügung. | ||
Zeile 19: | Zeile 21: | ||
* 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" (Angebot/Auftrag) bzw. " | + | Um diese Nachteile zu umgehen, kann man in den Report anstelle des RTF-Feldes eine Variable mit dem Namen "AuftrPosTextOhneRtf" (Angebot/Auftrag) bzw. "RechPosTextOhneRtf" (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! | ||
+ | |||
+ | |||
== Vorgehensweise == | == Vorgehensweise == | ||
Zeile 33: | Zeile 38: | ||
: RechPosTextPositionOhneRtf | : RechPosTextPositionOhneRtf | ||
+ | |||
+ | oder | ||
+ | |||
+ | : RechPosTextOhneRtf | ||
:(genau so, mit Groß- und Kleinbuchstaben!) | :(genau so, mit Groß- und Kleinbuchstaben!) | ||
Zeile 51: | Zeile 60: | ||
procedure ChildPosTextOnBeforePrint(Sender: TfrxComponent); | procedure ChildPosTextOnBeforePrint(Sender: TfrxComponent); | ||
begin | begin | ||
− | ChildPosText.Visible := <AuftrPosTextOhneRtf> > ''; | + | ChildPosText.Visible := <AuftrPosTextOhneRtf> > <nowiki>''</nowiki>; |
end; | end; | ||
Zeile 60: | Zeile 69: | ||
procedure ChildPosTextOnBeforePrint(Sender: TfrxComponent); | procedure ChildPosTextOnBeforePrint(Sender: TfrxComponent); | ||
begin | begin | ||
− | ChildPosText.Visible := <RechPosTextOhneRtf> > ''; | + | ChildPosText.Visible := <RechPosTextOhneRtf> > <nowiki>''</nowiki>; |
end; | end; | ||
Aktuelle Version vom 12. Februar 2018, 12:40 Uhr
1 Allgemeines
Beim Drucken eines Angebots/Auftrags kann man den Positionstext, der normalerweise RTF-Formatierung beinhaltet, als reinen Text ausgeben.
Diese Funktion steht ab Version 3.1.18209 zur Verfügung.
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. "RechPosTextOhneRtf" (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
oder
- RechPosTextOhneRtf
- (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.