Seite/Ebene (letzte Seite) nach Tabelle anzeigen

Hallo!

Ich möchte als letzte Seite, welche einer Tabelle (bzw. dem Berichtscontaine) folgt eine weitere Seite anzeigen auf der Objekte zu sehen sind welche auf den anderen Seiten nicht vorkommen. Die Tabelle geht über mehrere Seiten und auf jeder Seite der Tabelle ist über der Tabelle ein Label das ober- und unterhalb von einer Linie begrenzt wird. Auf der letzten Seite soll an derselben Stelle ein anderer Text stehen., Mein Problem nun: Der Text der Fortlaufenden Seiten der Tabelle wird auch auf der letzten Seite angezeigt und überlappt sich somit mit dem eigenltichen Text der letzten Seite:

Ich habe bereits die 3 Objekte (Label sowie die beiden Linien) der letzten Seite mit dem Berichtscontainer vertikal verknüpft. Davor haben sich die beiden Labels auf jeder Seite überlappt. Habe jetzt relativ lange herumprobiert, bekomme es aber einfach nicht hin, auf der letzten Seite nur den dafür vorgesehenen Text anzuzeigen. Es sollen dann noch weitere Objekte auf der letzten Seite angezeigt werden, soweit bin ich aber noch nicht gekommen da ich vorher das andere Problem lösen möchte.

Würde mich freuen wenn jemand eine Idee hat wie man das lösen könnte. Danke im Voraus!

Verwende doch einfach anstelle von einzelnen Objekten eine freie Tabelle im Berichtscontainer und setzt diese an letzter Stelle im Container, Eigenschaft “Umbruch vor” und dann hast du was du willst auf der letzten Seite, darunter kannst dann deine weitere Objekte mit LastPage() z.B. (oder einem SetVar GetVar) anzeigen (ggf. musst du die noch zeitlich mit dem Container verketten).
Deine Linien kannst ja den Rahmen für die Spalte setzen usw.

Diese Idee hatte ich ebenfalls schon, aber ich möchte diesen Text mit Linien ja auf jeder Seite an derselben Position haben und ausserdem kann man in einer freien Tabelle kein Linien-Objekt einfügen. Oder geht das irgendwie? Langer Rede kurzer Sinn: Ich wüßte nicht wie ich das gewüschte Ergebnis mttels Tabelle mit freiem Inhalt erreichen könnte.

Folgende Info könnte hier auch noch nützlich sein:

EbenenKonfiguration

Die Ebene “Folgeseiten” ist jene auf der die Tabelle und auch die Überschrift “Checklist” angezeigt werden. Eventuell muss die Bedingung “Page() > 2” hier angepasst werden. Habe “Page() > 2 AND not LastPage()” probiert aber das führt zu einer Endlosschleife.

Sowas?

Falls ja, dann schau mal hab dir das Projekt für die Beispielanwendung dran gehängt (öffnen mit 27 über Berichte).

Falls nein, dann hat vielleicht combit noch ne Idee :wink:

Tabellen_Forum.zip (5.1 KB)

1 Like

Erstmal danke, dass Du Dir so viel Mühe machst!

Leider ist das nicht ganz das was ich gemeiont hatte. Der springende Punkt ist, dass auf der letzten Seite nicht Checklist als Überschrift stehen sollte sonderen ein anderer Text. Dieser wird aber in all meinen Versuchen immer mit dem Text “Checklist” überlagert. Ich schaffe es einfach nicht, den Text “Checklist” zwar auf allein Seiten mit der Tabelle aber nicht auch auf der letzten Seite anzuzeigen.

Da dieser Anwendungsfall aber jetzt nicht völlig absurd und praxisfremd ist, hoffe ich ja doch, dass es dafür eine Lösung gibt.

Kein Problem mach ich gern.
Aber der Text Checklist ist ja hier fest drin von mir, da kannst du ja reinschreiben was du willst, eventuell eine Variable, oder einen Wert von SetVar() oder eine Benutzervariable oder, oder, oder :wink:

Ja, das ist mir schon klar, dass es “fest drin” ist. Aber ich möchte eben an dieser Stelle auf der letzten Seite etwas anderes stehen haben als auf den Seiten davor. Und genau das bekomme ich eben nicht hin weil die Ausgabe der letzen Seite immer von der Ausgabe der Seiten davor überlagert wird. Ich hätte vermutet dass das mit einer Bedingung machbar wäre, aber das funktioniert irgendwie nicht.

Hallo,

folgende Vorgehensweise für eine mögliche Umsetzung:

In der letzten Fußzeile der Tabelle setzten wir mittels der Designerfunktion SetVar() einen Wert “Fertig”, der erst dann gefüllt wird, wenn die letzte Fußzeile der aktuellen Tabelle zum letzten Mal ausgegeben wird, siehe LastFooterThisTable().

In unserem Fall haben wir zwei Textobjekte an die Tabelle verkettet, die in der Darstellungsbedingung dann wiederum mittels der Designerfunktion GetVar() auf den Wert “Fertig” prüfen.

Das erste Textobjekt

Das zweite Textobjekt

Hier muss die Druckreihenfolge beachtet werden. Diese Vorgehensweise können Sie auch bei anderen Objekten anwenden.

Ich habe mal die Vorlage von @Erdal_Alacali dementsprechend angepasst (Danke dafür :slight_smile:).

Vielleicht können Sie eine ähnliche Vorgehensweise in Ihrem Projekt ausprobieren, oder Sie machen das Sample einfach soweit “kaputt”, so dass wir dann auf dem selben Stand sind, und wir gemeinsan weiter nach einer möglichen Umsetzung schauen können.

sample.lsr (421.6 KB)
Das Projekt können Sie mit Hilfe unserer Demo Applikation “DemoApplication27.exe” im Unterverzeichnis “Beispielanwendung”, über “Berichte” öffnen.

Hallo!

Vielen Dank, mit dem Setzen einer Variable in der letzten Fußzeile und dem Abfragen in der Darstellungsbedingung konnte ich nun verhindern, dass der Text auf der letzten Seite überlagert wird.

Aber jetzt einmal eine ganz blöde aber berechtigte Frage: Wie um alles in der Welt sollte man auf die Idee kommen, dass man bei der Eigenschaft “Inhalt” einer Zelle in der Fußzeile Code ausführen kann welcher eine Benutzervariable setzt? Woher weiß man soetwas, ausser vielleicht wenn man bei Combit als Entwickler arbeitet? Ja, wenn man ganz genau weiß wo und wonach man suchen muss, dann findet man das sogar in einem Beispiel im Designerhandbuch:

8.2.5 Praxis: PDF nach einer Tabelle auf letzter Seite ausgeben

Aber auch nach mehrmaligem Abgrasen des Designerhandbuchs nach einer Lösung für mein Problem bin ich nicht bei diesem Beispiel hängengeblieben. Also sagen wir so: Das Designerhandbuch hat noch etwas Luft nach Oben :wink:

Es ist ja sehr positiv, dass List & Label so flexibel ist und man so ziemlich jede Anforderung irgendwie hinbekommt. Das Blöde ist eher nur, dass dazu häufig Wissen benötigt wird das wohl nur vom Großvater an den 7. Urenkel an einem 29. Februar bei Vollmond weitergegeben wird :stuck_out_tongue:

Meine Gefühle sind gerade etwas zwiegespalten. Auf der einen Seite denke ich mir, dass es gut zu wissen ist, dass derartige Dinge machbar sind, denn das eröffnet ungeahnte Möglichkeiten. Auf der anderen Seite denke ich mir aber auch, dass das ein mehr als nur grausamer Hack ist um eine ziemlich einfache und alltägliche Anforderung abzubilden. Warum geht soetwas nicht einfacher?

Wie auch immer, vielen Dank auf jeden Fall!

Solange es nur um die letzte Seite geht können Sie auch mit einer ganz normalen Darstellungsbedingung arbeiten. Wenn Sie aber eine allgemeine Lösung suchen, dann haben Sie hier ein Allzweckwerkzeug. Das ist an sich auch keine Geheimwissenschaft, GetVar und SetVar werden relativ häufig verwendet. Aber klar, die Dokumentation kann immer besser sein - wir arbeiten da ständig dran :slight_smile:. Schön in jedem Fall, dass Sie jetzt eine Lösung haben. Und schauen Sie einfach hier vorbei, wenn es mal wieder klemmt - wir helfen gerne.

Hallo!

Ich bin auch sehr froh über das Forum und der Support von Combit ist auch wirklich hervorragend und hilfreich aber eben leider auch nötig weil die Anleitung nicht mehr hergibt. Die Beispiele kratzen oft nur an der Oberfläche und hören meist, wie das leider generell häufig der Fall ist, dort auf wo es beginnt interessant zu werden. Natürlich würde ich es begrüssen (und viele andere wohl auch), wenn hier Verbesserungen vorgenommen werden.

Bezüglich Darstellungsbedingung: Wie würde das denn aussehen wenn man das mit einer Darstellungsbedingung macht? Die Bedingung “Page() > 2 AND not Lastpage()” hat, wie bereits erwähnt, zu einer Endlosschleife geführt. Es würde sehr helfen, wenn Sie mir noch sagen könnten, wie ich das gewünschte Ergebnis mit einer Darstellungsbedingung hinbekommen könnte. Je mehr ich hier über List & Label lernen kann, desto besser kann ich das Produkt auch einsetzen.

Ich habe das Sample von @oboyaci mal so modifiziert, dass die Darstellungsbedingungen der beiden Objekte wie von Ihnen beschrieben sind:

image

Das Ergebnis im Beispiel ist dann wie erwartet - der erste Text erscheint ab Seite 3, der zweite lediglich auf der letzten Seite.

sample_modified.lsr (421.5 KB)

Hallo!

Habe mir das jetzt angesehen …
Das Beispiel ist etwas anders als mein Anwendungsfall, denn bei mir endet die Tabelle auf der vorletzten Seite und ich habe noch eine Seite nach der Tabelle, siehe obige Ebenenkonfiguration.

Das bekomme ich in diesem Beispiel aber auch nicht hin. Habe eine zusätzliche Ebene hinzugefügt, dieser die Bedingung “LastPage()” verabreicht und das entsprechende Label der letzten Ebene zugewiesen. Aber die letzte Seite wird nie angezeigt. Meine Anforderung ist dann vielleicht doch etwas aus der Norm und klappt dann wohl doch nur mit der oben beschriebenen Vorgehensweise. Oder gäbe es da noch eine andere Lösung?

Konkret auf das Beispiel hier bezogen: Sie könnten dem Objekt mit dem Text noch ein “Umbruch vor” auf “true” spendieren :slight_smile::

image

Dann bekomme ich das hier:

Ansonsten würde ich die Lösung von @oboyaci verwenden, wenn das Projekt da auch in Ihrem Kontext genau das macht, was Sie brauchen - GetVar und SetVar sind tatsächlich unsere “Schweizer Taschenmesser” für solche Dinge. Und wie gestern Abend schon geschrieben auch nicht wirklich üble Hacks, sondern genau für so etwas gedacht :slight_smile:. Sie finden auch hier im Forum viele Threads rund um das Thema.

Vielen Dank nochmals!

Ja, das funktioniert jetzt auf diese Art und diese Vorgehensweise wird mir sicher auch bei weiteren Reports noch nützlich sein. Es ist ja nie verkehrt, ein Schweizer Taschenmesser zur Verfügung zu haben :slight_smile:

Es wäre aber auch wirklich gut, diesem Thema in der Doku bzw. in den Beispielen noch etwas mehr Aufmerksamkeit zu widtmen. Das geht dort leider etwas unter.

2 Likes

© combit GmbH