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

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Vorgehensweise)
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
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.
  
  
 
== 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 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" 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. "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 29: Zeile 34:
  
 
: AuftrPosTextOhneRtf
 
: AuftrPosTextOhneRtf
 +
 +
bzw.
 +
 +
: RechPosTextPositionOhneRtf
 +
 +
oder
 +
 +
: RechPosTextOhneRtf
  
 
:(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 47: Zeile 60:
 
  procedure ChildPosTextOnBeforePrint(Sender: TfrxComponent);
 
  procedure ChildPosTextOnBeforePrint(Sender: TfrxComponent);
 
  begin
 
  begin
   ChildPosText.Visible := <AuftrPosTextOhneRtf> > '';
+
   ChildPosText.Visible := <AuftrPosTextOhneRtf> > <nowiki>''</nowiki>;
 
  end;
 
  end;
 
   
 
   
 +
 +
bzw. bei der Rechnung
 +
 +
 +
procedure ChildPosTextOnBeforePrint(Sender: TfrxComponent);
 +
begin
 +
  ChildPosText.Visible := <RechPosTextOhneRtf> > <nowiki>''</nowiki>;
 +
end;
 +
 +
 +
 
:Dieser Code unterdrückt das Band, wenn die Variable leer ist.
 
:Dieser Code unterdrückt das Band, wenn die Variable leer ist.

Aktuelle Version vom 12. Februar 2018, 13: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.