FastReport auf Rechnung nur letzten Lieferschein: Unterschied zwischen den Versionen

Aus GEVITAS
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Anzahl Datensätze vergleichen mit aktuellem Datensatz == Manchmal will man nur den letzten Datensatz ausdrucken, beispielsweise in einem Rechnungsformular…“)
 
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 15: Zeile 15:
  
 
Nun will man aber nur den '''letzten''' Lieferschein haben!
 
Nun will man aber nur den '''letzten''' Lieferschein haben!
 +
 +
Dazu muss man das Band im Designer anklicken und im Objektinspektor auf das Register "Ereignisse" klicken.
 +
 +
In der Zeile "OnBeforePrint" macht man dann einen Doppelklick und kommt in das Code-Fenster:
 +
 +
 +
procedure DetailDataLieferscheinNummernOnBeforePrint(Sender: TfrxComponent);
 +
begin
 +
 +
end;
 +
 +
 +
Nun fügt man diesen Code ein:
 +
 +
 +
procedure DetailDataLieferscheinNummernOnBeforePrint(Sender: TfrxComponent);
 +
begin
 +
  // Nur LETZTEN Datensatz aufführen:
 +
  if <Line#> = DetailDataLieferscheinNummern.DataSet.RecordCount then
 +
    DetailDataLieferscheinNummern.Visible := True
 +
  else
 +
    DetailDataLieferscheinNummern.Visible := False;
 +
 +
end;
 +
 +
 +
;<Line#>
 +
:In dieser Variablen legt FastReport die "Zeilennummer" (=Datensatz-Nummer) des gerade eingelesenen Datensatzes ab. Das ist einfach eine fortlaufende Nummer ab 1.
 +
 +
;DetailDataLieferscheinNummern.DataSet.RecordCount
 +
:Jetzt wird es etwas kompliziert:
 +
:Jedes Band hat eine zugehörige Datenbank-Tabelle bzw. Datenbank-Abfrage. In diesem Fall hat das Band "DetailDataLieferscheinNummern" die Datensätze ("DataSet") aus den Lieferscheinen.
 +
:"RecordCount" enthält nun die Anzahl der Datensätze des Bandes, in unserem Fall also die Anzahl der Lieferscheine zu dem zugehörigen Auftrag.
 +
 +
Wenn also das hier zutrifft...
 +
 +
  if <Line#> = DetailDataLieferscheinNummern.DataSet.RecordCount then
 +
 +
...dann hat man in diesem Augenblick den '''letzten''' Datensatz und kann das Band einblenden...
 +
 +
    DetailDataLieferscheinNummern.Visible := True
 +
 +
...ansonsten ist es '''nicht''' der letzte Datensatz und das Band soll ausgeblendet werden:
 +
 +
  else
 +
    DetailDataLieferscheinNummern.Visible := False;
 +
 +
 +
 +
Das sieht dann so aus:
 +
 +
[[Datei:FastReport_TippsUndTricks_Rechnung_LieferscheineNurLetzter_03.png]]
 +
 +
 +
 +
 +
 +
== Links ==
 +
 +
* [[FastReport Fehlermeldungen]]
 +
 +
* [[FastReport Seitenformat]]
 +
 +
* [[FastReport Daten, Tabellen und Felder]]
 +
 +
* [[FastReport Bands]]
 +
 +
* [[FastReport Objekte und Elemente eines Reports]]
 +
 +
* [[FastReport: Abhängige Formatierung von Feldern]]
 +
 +
* [[FastReport Farb-Konstanten]]
 +
 +
* [[FastReport HTML-Tags in Texfeldern]]
 +
 +
* [[FastReport Namensgebung der Datenbank-Tabellen und -Felder]]
 +
 +
* [[FastReport: Summen im Report bilden]]
 +
 +
* [[FastReport Engine: Der Report-Erzeuger]]
 +
 +
* [[Ladeliste/Packliste mit FastReport]]
 +
 +
* [[FastReport Beispiel Auftragsformular Struktur der Positionen]]
 +
 +
* [//youtu.be/VDTSGf4oIFA Video FastReport Teil 1: Allgemeines]
 +
 +
* [//youtu.be/M3keXvU3JIY Video FastReport Teil 2: Erstes Kennenlernen]
 +
 +
* [//youtu.be/ZEa9te2nyco Video FastReport Teil 3: Den ersten Report erstellen]
 +
 +
* [//youtu.be/IrpqarC0KEc Video FastReport Teil 4: Summen im Report erstellen]
 +
 +
* [//youtu.be/5krqu5oSuGU Video FastReport Teil 10: Vererbung, Erstellen und Verwenden eines Basis-Reports]
 +
 +
* [//www.fast-report.com/de/ Homepage von FastReport]
 +
 +
* [[Etikettendruck Allgemeines]]
 +
 +
* [[GEVITAS Label-Print Installation]]
 +
 +
* [[GEVITAS-Carnet]]

Aktuelle Version vom 17. März 2017, 12:41 Uhr

1 Anzahl Datensätze vergleichen mit aktuellem Datensatz

Manchmal will man nur den letzten Datensatz ausdrucken, beispielsweise in einem Rechnungsformular nur den letzten Lieferschein.

Beispiel:

In einem Rechnungs-Report gibt es ein Band, in dem die Lieferscheine zu dem zugehörigen Auftrag aufgeführt sind:


FastReport TippsUndTricks Rechnung LieferscheineNurLetzter 01.png

Das sieht so aus:

FastReport TippsUndTricks Rechnung LieferscheineNurLetzter 02.png

Nun will man aber nur den letzten Lieferschein haben!

Dazu muss man das Band im Designer anklicken und im Objektinspektor auf das Register "Ereignisse" klicken.

In der Zeile "OnBeforePrint" macht man dann einen Doppelklick und kommt in das Code-Fenster:


procedure DetailDataLieferscheinNummernOnBeforePrint(Sender: TfrxComponent);
begin

end;


Nun fügt man diesen Code ein:


procedure DetailDataLieferscheinNummernOnBeforePrint(Sender: TfrxComponent);
begin
  // Nur LETZTEN Datensatz aufführen:
  if <Line#> = DetailDataLieferscheinNummern.DataSet.RecordCount then
    DetailDataLieferscheinNummern.Visible := True
  else
    DetailDataLieferscheinNummern.Visible := False;

end;

<Line#>
In dieser Variablen legt FastReport die "Zeilennummer" (=Datensatz-Nummer) des gerade eingelesenen Datensatzes ab. Das ist einfach eine fortlaufende Nummer ab 1.
DetailDataLieferscheinNummern.DataSet.RecordCount
Jetzt wird es etwas kompliziert:
Jedes Band hat eine zugehörige Datenbank-Tabelle bzw. Datenbank-Abfrage. In diesem Fall hat das Band "DetailDataLieferscheinNummern" die Datensätze ("DataSet") aus den Lieferscheinen.
"RecordCount" enthält nun die Anzahl der Datensätze des Bandes, in unserem Fall also die Anzahl der Lieferscheine zu dem zugehörigen Auftrag.

Wenn also das hier zutrifft...

  if <Line#> = DetailDataLieferscheinNummern.DataSet.RecordCount then

...dann hat man in diesem Augenblick den letzten Datensatz und kann das Band einblenden...

    DetailDataLieferscheinNummern.Visible := True

...ansonsten ist es nicht der letzte Datensatz und das Band soll ausgeblendet werden:

  else
    DetailDataLieferscheinNummern.Visible := False;


Das sieht dann so aus:

FastReport TippsUndTricks Rechnung LieferscheineNurLetzter 03.png



2 Links