[Gelöst] TransFooter wird nicht angezeigt

21. Januar 2009 22:29

Hallo zusammen!

Ich bin gerade dabei unsere Reports anzupassen (speziell: Order Confirmation) und habe folgende Probleme:

1. Bei einer bestimmten Anzahl von Zeilen (Sales Lines) wird der TransFooter nicht angezeigt obwohl das DataItem auf der nächsten Seite weiter geht. Genauer gesagt tauchen auf der nächsten Seite keine Zeilen mehr auf (also scheint der Body zu ende zu sein) aber die normalen Footer werden auf der nächsten Seite gedruckt (interessanterweise obwohl auf der vorherigen Seite noch genug Platz für die Footer sein sollte). Ist es das erwartete Verhalten, dass in diesem Fall der TransFooter nicht gedruckt wird?


2. Ich habe bereits erfahren, dass kein TransFooter gedruckt wird, wenn der Seitenumbruch genau zwischen zwei DataItems auftritt. Gibt es trozdem eine Möglichkeit eine Section mit dem TransFooter Verhalten - also Anzeige nur, wenn weitere Seiten folgen - anzuzeigen um eine "Fortsetzung auf nächster Seite"-Meldung zu realisieren?
Ich habe das Problem bereits auf mibuso.com gefunden, allerdings gab es dort keine richtige Antwort. Nur eine Idee zur Lösung, die ich nicht so ganz verstehe: http://www.mibuso.com/forum/viewtopic.p ... 709#p43709


Noch ein paar Kommentare zu dem Report: Der Report enthält einen Header und einen Footer der auf jeder Seite gedruckt wird und alle Sections haben "KeepWithNext" auf Yes. Weder der TransFooter, noch die normalen Footer aus meinem ersten Problem haben Code in den Triggern. Und im Code vom Body taucht auch nirgends ein NEWPAGE auf.

Schonmal vielen Dank im voraus für die Antworten.
Gruß, Jochen
Zuletzt geändert von Ignitor am 22. Januar 2009 00:32, insgesamt 1-mal geändert.

Re: TransFooter wird nicht angezeigt

21. Januar 2009 22:37

Ignitor hat geschrieben:und alle Sections haben "KeepWithNext" auf Yes.

Warum? Schau mal obs hilft, wenn die auf No sind.

Re: TransFooter wird nicht angezeigt

21. Januar 2009 23:19

Natalie hat geschrieben:Warum? Schau mal obs hilft, wenn die auf No sind.

War der Default Wert. Hab die Sections aus dem Standardbericht übernommen.
Sinnvolles Setzen auf "No" hat geholfen (obwohl ich spontan vermutet hätte, dass sich das Problem damit nur verschiebt - sprich ein paar Zeilen mehr im Verkaufsauftrag und die selbe Situation liegt wieder vor - da ich damit ja nur die Größe des nächsten, nicht-umbrechbaren Blocks verkleinere. Aber dem ist nicht so - habe es getestet). Vielen Dank!

Das 2. Problem besteht aber weiterhin.

Gruß, Jochen

Re: TransFooter wird nicht angezeigt

21. Januar 2009 23:52

Ignitor hat geschrieben:Das 2. Problem besteht aber weiterhin.

Hm kannst du keinen Footer statt TransFooter nehmen? Und dort PrintOnEveryPage = Yes

Re: TransFooter wird nicht angezeigt

22. Januar 2009 00:31

Natalie hat geschrieben:Hm kannst du keinen Footer statt TransFooter nehmen? Und dort PrintOnEveryPage = Yes


Prinzipiell ja, aber ich hätte natürlich gerne die Zwischensumme angezeigt, wenn der Seitenumbruch innerhalb der Zeilen kommt. Im Falle, dass der Umbruch zwischen den DataItems statt findet sollte dort natürlich nichts stehen. Das liese sich zwar auch machen, aber ich habe noch einmal über die Idee von mibuso.com nachgedacht und jetzt verstanden, wie es funktioniert:


1.Man legt eine globale Boolean-Variable z.B. mit dem Namen "ShowManualTransFooter" an

2. In einer Header Section der PageLoop (mit "PrintOnEveryPage" auf "Yes") setzt man im OnPreSection Trigger diese Variable auf TRUE (vielleicht kann man das auch in den OnPreDataItem Trigger der PageLoop verschieben?):
Code:
ShowManualTransFooter := TRUE;

3. Man legt eine Footer Section für die PageLoop an, setzt "PrintOnEveryPage" auf "Yes" und schreibt im OnPreSection Trigger:
Code:
CurrReport.SHOWOUTPUT( ShowManualTransFooter );
Diese neue Section ist der Footer der angezeigt wird, wenn der Seitenumbruch genau zwischen zwei DataItems passiert.

4. Bei allen vorhandenen TransFootern schreibt man im OnPostSection Trigger
Code:
ShowManualTransFooter := FALSE;
um zu verhindern, dass der "ManualTransFooter" auch angezeigt wird, wenn während eines DataItems umgebrochen wird.

5. Beim letzten DataItem in der PageLoop setzt man im OnPostDataItem Trigger ebenfalls
Code:
ShowManualTransFooter := FALSE;
um zu verhindern, dass der "ManualTransFooter" auf der letzten Seite angezeigt wird.

Re: [Gelöst] TransFooter wird nicht angezeigt

30. März 2015 19:21

Hallo Jochen,

vielen Dank für die tolle Anleitung.
Ich habe dasselbe Problem. Allerdings ist es bei mir so, dass es nicht immer zwei Seiten gibt und der "ManualTransFooter" aber nicht unterdrückt wird, wenn es nur eine Seite gibt. D.h. er wird immer gedruckt, auch wenn er nicht nötig wäre.

Gibt es dafür vielleicht auch noch eine Lösung?

Vielen Dank im Voraus!
Schöne Grüße
Andreas Görzen

Re: [Gelöst] TransFooter wird nicht angezeigt

19. April 2015 22:52

agoerzen hat geschrieben:der "ManualTransFooter" aber nicht unterdrückt wird, wenn es nur eine Seite gibt


Das sollte eigentlich durch Schritt 5. verhindert werden.
Ich formuliere den Sinn von Schritt 5. nochmal in anderen Worten, vielleicht wird dann klar, wie du dein Problem lösen kannst:
Nachdem die letzten, zu druckenden Daten ausgegeben wurden, setzt man
Code:
ShowManualTransFooter := FALSE;
um zu verhindern, dass der "ManualTransFooter" am Ende der Ausgabe noch angezeigt wird.

Wenn dieser Schritt bei dir nicht greift, dann wird vielleicht das DataItem, in dem du
Code:
ShowManualTransFooter := FALSE;
setzt, nicht angezeigt, sprich der OnPostDataItem Trigger wird nicht ausgeführt. In dem Fall müsstest du die Zeile in ein anderes DataItem/anderen Trigger verschieben.