FastReport Tipps und Tricks: Variablen: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Variablen im Code mit Inhalten füllen)
(Variablen im Code mit Inhalten füllen)
Zeile 61: Zeile 61:
  
 
  <nowiki>Set( 'Versand','''Anlieferung durch UPS am ' + DateToStr( <AuftragsKopf."AufbauDatum"> )  + ' vor 12 Uhr.' + '''' );</nowiki>
 
  <nowiki>Set( 'Versand','''Anlieferung durch UPS am ' + DateToStr( <AuftragsKopf."AufbauDatum"> )  + ' vor 12 Uhr.' + '''' );</nowiki>
 +
 +
oder
 +
 +
<nowiki>Set( 'Versand','''Anlieferung durch UPS am ' + DateToStr( <AuftragsKopf."AufbauDatum"> )  + ' vor 12 Uhr.''' );</nowiki>
 +
  
 
Die '''ersten''' drei einfache Anführungszeichen '''<nowiki>'''</nowiki>''' leiten den Text ein, die '''letzten''' drei einfachen Anführungszeichen '''<nowiki>'''</nowiki>''' zeigen das Ende des Textes an.
 
Die '''ersten''' drei einfache Anführungszeichen '''<nowiki>'''</nowiki>''' leiten den Text ein, die '''letzten''' drei einfachen Anführungszeichen '''<nowiki>'''</nowiki>''' zeigen das Ende des Textes an.

Version vom 31. Juli 2018, 20:52 Uhr

1 Variablen

1.1 Fortlaufende Nummer

Wenn man eine fortlaufende Nummer im Report braucht, kann man dazu die System-Variable Line verwenden. Line gibt die Nummer des gerade abgerufenen Datensatzes an, von 1 beginnend.

Wenn man jedoch z.B. eine Gruppierung im Report hat und nur die Daten aus dem Gruppenfuß drucken will, kann man Line nicht verwenden, weil in einer Gruppe ja viele Datensätze enthalten sind und Line die Datensätze zählt, nicht die Gruppenergebnisse.

Um die Aufgabe zu lösen, deklariert man eine eigene Variable im Report und setzt den Standardwert auf 0.

Im Code gibt man z.B. im Gruppenfuß folgenden Code ein:

procedure GroupFooter1OnBeforePrint(Sender: TfrxComponent);
begin
  Set('LfdNr', <LfdNr> + 1);
end;


1.2 Zähler-Variable zum Unterdrücken von wiederholten Werten

Manchmal möchte man wiederholte Werte, die untereinander stehen, nicht drucken. Beispiel einer Auftragsposition:

1.1 Artikel A

Alternativ:
1.2 Artikel B 

Alternativ:
1.3 Artikel C

Das Wort Alternativ: soll hier nur bei der ersten Alternative stehen, die direkt danach folgenden sollen unterdrückt werden.

Eigentlich gibt es dazu in FastReport eine Option "wiederholte Werte unterdrücken" auf der rechten Maustaste eines Objektes. In einfachen Listen funktioniert das auch, in komplexen Formularen mit wechselseitigem Ausblenden von Bändern aber nicht (immer)!

Dieser Artikel beschreibt, wie man das Problem mit einer Variable lösen kann.


1.3 Variablen im Code mit Inhalten füllen

Im Report kann man ja eigene Variablen einfügen (Menü Report ⇒ Variablen... ).

Leider kann man den Inhalte von Variablen nicht einfach so füllen...

<Meine Variable> := 'Irgendwas'

...sondern muss die Funktion

Set( 'Meine Variable, 'Irgendwas');

...verwenden.

Wenn man Felder einfügen will, ist das verhältnismäßig klar:

Set('LfdNr', <LfdNr> + 1);

Wenn man jedoch Text gemischt mit Feldern einfügen will, wird es etwas aufwändiger:. Hier soll z.B. die Variable "Versand" mit Text und einem Datenbank-Feld gefüllt werden.

Das muss dann so aussehen:

Set( 'Versand','''Anlieferung durch UPS am ' + DateToStr( <AuftragsKopf."AufbauDatum"> )  + ' vor 12 Uhr.' + '''' );

oder

Set( 'Versand','''Anlieferung durch UPS am ' + DateToStr( <AuftragsKopf."AufbauDatum"> )  + ' vor 12 Uhr.''' );


Die ersten drei einfache Anführungszeichen ''' leiten den Text ein, die letzten drei einfachen Anführungszeichen ''' zeigen das Ende des Textes an.

Damit "weiß" FastReport, dass ein Text in die Variable eingefügt werden soll.

Da hier ein Datumsfeld als Text eingefügt werden soll, muss man die Funktion DateToStr( ) verwendet, um das Datum in einen Text umzuwandeln.

2 Links