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)
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.
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:
Vorsichtshalber einmal nachgefragt, damit ich die Umsetzung richtig verstehe:
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”?
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.
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.