FastReport Positionstext ohne RFT-Formatierung ausgeben: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Vorgehensweise)
Zeile 6: Zeile 6:
 
== Hintergrund ==
 
== 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.
+
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-band einfügen".
+
: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, 23: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.