nativeMax filtern mit zwei bedingung

Hallo Ich möchte eine wert aus einer bestimmten zeile der tabelle in die Kopfzeile eintragen.

Der Report erstellte Jahresweise Tabellen und daher gibt es für jedes Jahr eine Zeile die für jeden Moant des Jahres den Prozent wert hat. diesen Wert möchte ich in der Kopfzeilenspalte für diesen Monat eintragen. ich habe das mit Nativemax versucht, aber dort kann ich nicht sowohl nach der Markierung der Zeile suchen(wert in einer Sortierspalte) als auch nach dem Jahr.

zumindest Funktioniert das nicht :

NativeMax(dt.Juli,dt.Sortierung = 0 And dt.Jahr = @jahr)

wie kann ich dies trotzdem umsetzen.

Hallo Lars,

vielleicht funktioniert es über die Variante, mit SetVar() und GetVar() und dem Mehrpassverfahren zu arbeiten. Mehrpassverfahren deshalb, weil die Kopfzeile zuerst gedruckt wird und daher normalerweise nicht wissen kann, was in der Datenzeile danach enthalten ist. Mit dem Mehrpassverfahren, für deinen Fall auf “2” eingestellt, hat das Projekt dann zwei Durchgänge. Im zweiten kann dann für die Kopfzeile auf die Werte aus dem ersten Durchgang zurückgegriffen werden. Das Mehrpassverfahren lässt sich einstellen, wenn man in der Objektliste im Designer auf Projekt auswählt in den allgemeinen Einstellungen.

Im ersten Durchgang würde man dann anstelle des Prozentwertes direkt eine für jeden Monat einzigartige Variable über SetVar() setzen, bspw. If(PrintPassIndex()==1, SetVar("Prozentwert"+Monat, Prozentwert)).

PrintPassIndex gibt den entsprechenden Durchgang im Mehrpassverfahren an und sorgt dafür, dass dies nur im ersten Durchgang gesetzt wird.

In der Kopfzeile dann GetVar("Prozentwert"+Monat) verwenden bzw. so, wie du die Variable schlussendlich benannt hast.

Mit freundlichen Grüßen
Leon

Hallo Leon,

ich habe setvar und getvar noch nie benutzt und bin mir daher unsicher wie ich da die filterung eintrage. um Mein Problem besser darzustellen habe ich einen DataTable erstellt, der so ungefähr aus sql übergeben wird.

Sortierung Jahr Januar Februar
1 2025 betrag betrag
2 2025 betrag betrag
3 2025 betrag betrag
4 2025 betrag betrag
5 2025 prozentwert des Monats in 2025 prozentwert des Monats in 2026
1 2026 betrag betrag
2 2026 betrag betrag
3 2026 betrag betrag
4 2026 betrag betrag
5 2026 prozentwert des Monats in 2026 prozentwert des Monats in 2026

Bei der Aussgabe wird nach jeden Jahr eine neue Seite angefagen.

das heißt es gäbe dann 2 tabellen die so aussehen würden:

Jahr 2025

Sortierung Januar / prozent Februar/Prozent März/Prozent
1 Betrag Betrag Betrag
2 Betrag Betrag Betrag
3 Betrag Betrag Betrag
4 Betrag Betrag Betrag

Jahr 2026

Sortierung Januar / prozent Februar/Prozent März/Prozent
1 Betrag Betrag Betrag
2 Betrag Betrag Betrag
3 Betrag Betrag Betrag
4 Betrag Betrag Betrag

Vorsichtshalber einmal nachgefragt, damit ich die Umsetzung richtig verstehe:

  1. Ein eigenes Feld für den Prozentwert wird es vermutlich nicht geben und alle Werte befinden sich sozusagen im Feld “Monat” bzw. anhand deines DataTable Beispiels in “Januar” oder “Februar”?

  2. Zusätzlich wird die Ausgabe des Prozentwertes bzw. die Zeile mit Sortierung 5 mit einer Darstellungsbedingung unterdrückt und gar nicht erst ausgegeben?

Grundsätzlich kannst du bspw. eine If()-Abfrage um das SetVar() legen, bspw. If(Sortierung ==5, SetVar("FebruarProzent"+Str$(Jahr), Februar), Februar)damit dann eben nur ein Wert für die Variable gesetzt wird, wenn Sortierung = 5, also in deinem Beispiel die Zeile mit dem Prozentwert ist. Das setzt aber voraus, dass die Zeile angezeigt wird, daher meine Frage 2.

Ja die Zeile wird unterdrückt da dies Werte nur oben im Kopf angezeigt werden soll.

Wenn Sie die Möglichkeit haben, in der Datenquelle die Prozentzeile vor die zugehörigen Datenzeilen zu packen (z.B. mit Sortierwert 0 statt 5) könnten Sie die Spaltenköpfe in einem Gruppenkopf mit “Gruppieren Nach: Jahr” und “Umbruch vor Ausgabe: Ja” drucken.

danke das hab ich jetzt so gemacht, und habe die zellen so angepasst, das es aussieht wie eine Kopfzeile.