[Gelöst] Report: Footer nur auf letzter Seite anzeigen!

11. März 2008 15:23

Hallo liebe Programmierer!

Ich habe einen wunderbaren Report im Projektmodul programmiert. Unter dem Groupfooter (Summen je Projekt) gibt es einen Footer für die Gesamtsumme (aller Projekte) und einen Footer für die Seitenzahlen etc.. Nun ist der Schönheitsfehler, dass der Footer mit der Gesamtsumme auf jeder Seite angezeigt wird (....als laufende Summe). Eigentlich sollte er aber nur auf der letzten Seite angezeigt werden. Ich muß wohl eine Variable (z.B. Gesamtsumme := 0;) definieren und dann den Befehl im Footer unter der OnPostSection einstellen.

CurrReport.SHOWOUTPUT := Gesamtsumme = 1;
Gesamtsumme := 1;

Wo muß ich im Bericht die Variable auf Null setzen, damit sie nur zum Schluss des Reports auf 1 bleibt?
Mit einem Groupfooter habe ich es auch schon probiert, hatte dort das gleiche Problem, mit dem Befehl TOTALSCAUSEDBY konnte ich genauso wie mit einem Transfooter bisher keine Lösung finden.

Wahrscheinlich habe ich irgendwo einen Denkfehler, der mich aber schon mehrere Stunden gekostet hat und mich schon seit einem halben Jahr verfolgt. Im Forum konnte ich leider nichts Vergleichbares finden....

HELP!! :cry:

Grüße von Wolfgang
Zuletzt geändert von Mohnke am 11. März 2008 17:00, insgesamt 1-mal geändert.

11. März 2008 15:34

Hallo,

so ohne den Aufbau des Reports zu sehen würd ich mal als Schnelllösung vorschlagen:

1. Anzahl der Projekte in einer Variable speichern, welche noch im Report durch den angewanten Filter hängen bleiben
2. OnAfterGetRecord für die Projekte zählst du eine Variable hoch
3. Ausgabe (also bei dir: Gesamtsumme=1) wenn die Anzahl der Projekte = Zähler des Aktuellen Projektes


bzw: ist denn im Report Footer die Eigenschaft: PrintOnEveryPage auf False?

so in der Art.

11. März 2008 15:52

Hallo Marcel!
Vielen Dank für die schnelle Antwort. So kann es funktionieren. Wie kriege ich nun allerdings die Anzahl der Projekte raus?
Das scheint wirklich nicht ganz so einfach zu sein......

Gruß Wolfgang

11. März 2008 16:00

Rec.COUNT();

aber ich behaupte einfach mal ein Integer DataItem waere vll hilfreich.
bzw. ein DataItem mit Bezug auf die Tabelle Integer. Dieses muss "eingerückt" sein wie das erste DataItem.
Da setzt du die Iteration auf 1 und erstellst den Footer. Wenn ich mich nicht taeusche wuerde er das nun nur einmal ausfuehren.

11. März 2008 16:16

trotzdem sollte die Eigenschaft des Reportfooters: PrintOnEveryPage=False vollkommen ausreichen

11. März 2008 16:19

leider hab ich schon haeufig genug die Erfahrung gemacht das die Reports sich nicht so verhalten wie sies sollten. Aber versuchen wuerde ichs natuerlich ;)

11. März 2008 16:22

Probleme gibt es glaub ich nur, wenn man in der gleichen Dataitem-Section einmal im Header sagt: PrintOnEveryPage=Yes und im Footer: PrintOnEveryPage=False ...

Dann gabs immer ein Durcheinander. Zumindest in der 3er Version.

11. März 2008 16:59

Hallo Ihr beiden!

Die Kombination war die Lösung.

Variante 1: DataItem "INTEGER"
Das hat zwar funkiontiert, allerdings konnte ich die Zeile aufgrund der Verschachtelung der Tabellen nicht an die richtige Stelle setzen.

Vatiante 2: Projekte zählen:
Das hat pefekt geklappt. Diese Lösung kann man für den Footer oder den Groupfooter verwenden.

Im DataItem steht Folgendes:
Gesamtsumme := Job.COUNT; (...im OnPreDataItem)
GesamtsummeALT := GesamtsummeALT + 1; (...OnAfterGetRecord)

In der Section:
CurrReport.SHOWOUTPUT := Gesamtsumme = GesamtsummeALT;

Vielen Dank nochmal für die Unterstützer!

Gruß Wolfgang