ich habe aktuell einen sehr komischen Bug bei einer Benutzervariable.
Wenn ich die Spalte einer Tabelle in der Benutzervariable benutze, dann wird der Wert aus einer andere Zeile geholt.
Das trifft aber nur auf diese Spalte zu. Andere Spalten werden aus der richtigen Zeile geholt.
Bsp.:
Tabelle: TestTabelle
Spalten: TestSpalte1,TestSpalte2
In beiden Spalten wird die Zeilennummer gespeichert.
Benutzervariable: @TestVariable
Die Benutzervariable wird einer Tabelle eines Berichtscontainers verwendet die die Tabelle “TestTabelle” als Datenquelle hat.
Wenn ich in der Benutzervariable “@TestVariable” die Spalte “TestSpalte1” verwende, dann wird in der ersten Zeile “2” ausgegeben.
Wenn ich stattdessen die Spalte “TestSpalte1” verwende, dann wird “1” ausgegeben.
Wenn ich die Spalte “TestSpalte1” in der Tabelle des Berichtscontainers verwende, dann funktioniert es ebenfalls.
Kennt das jemand / mache ich etwas falsch?
Ich arbeite oft mit Benutzervariablen und habe das noch nie erlebt.
Es handelt sich um L&L 26.004.
Die Daten werden mit einem Dataset als Datasource übergeben.
willkommen hier im Forum . So ganz schlau bin ich aus der Beschreibung leider nicht geworden. Kannst du mal versuchen, ein paar Screenshots oder auch eine Projektdatei hier bereitzustellen, damit ich versuchen kann, das hier nachzustellen? Allgemein - das könnte hier ein Problem sein - könnte der Inhalt der Benutzervariable von der Druckreihenfolge abhängen. Wenn sich das Objekt mit der Variablen vor der Tabelle druckt wäre der Inhalt vermutlich “1”, wenn es sich danach druckt (und die Tabelle nur zwei Zeilen hat) dann “2”. Die Druckreihenfolge kannst du durch verschieben in der Objektliste beeinflussen, oder auch durch zeitliche Verkettung. Das ist aber ein Schuss ins Blaue, für einen besseren Tipp müsste ich das Problem erstmal richtig verstehen.
Hi Ferdinand, ich schließ mich dem Jochen an, aber zum testen könntest du mal SetVar(…) und GetVar(…) verwenden, vielleicht hilft das ja auch, ansonsten spendiere mal wie Jochen schreibt mehr Infos
Schau ich mir die Daten in der Druckvorschau an so wird der Wert(0,10) aus der zweiten Zeile. genommen.
Ich konnte die “Ursache” auf eine weitere Benutzervariable einschränken.
Diese benutzt die Benutzervariable A für weitere Berechnungen.
Wenn ich die Benutzervariable A aus dieser entferne, so passt auch die Anzeige in der Druckvorschau wieder.
Ich konnte das auch vereinfacht mit einer neuen weiteren Benutzervariable B testen.
Die Benutzervariable B gibt einfach nur die Benutzervariable A zurück.
Die neue Benutzervariable B wird an keiner Stelle im Projekt verwendet, da ich diese erst neu erstellt habe.
Benutzervariable B hat keine Referenz auf Benutzervariable A
Die Druckvorschau wird korrekt angezeigt
Benutzervariable B hat eine Referenz auf Benutzervariable A
In der Druckvorschau wird der Wert aus der zweiten Zeile in der ersten Zeile angezeigt
Ich hoffe ich konnte das Problem besser beschreiben.
Es scheint irgendein Problem zu geben wenn die Benutzervariablen verschachtelt werden.
Draus ergeben sich zwei fragen:
Gibt es grundsätzlich Probleme, wenn man Benutzervariablen verschachtelt ?
Ich benutze das recht häufig, da es das Leben einfacher macht.
A => B =>C
SetVar/GetVar ist nicht die Lösung.
Ich möchte mir das Leben einfacher, nicht schwerer machen .
Wie werden die Werte bei Benutzervariablen ermittelt?
Ich dachte immer, dass die adhoc bei der Ausgabe evaluiert werden.
Wenn ich aber oben etwas von der Druckreihenfolge lese, dann hört sich das so an als ob Sachen zwischen gespeichert werden.
normalerweise sollten die Werte gleich bleiben. Ich kann das Verhalten leider nicht so wie von dir beschrieben reproduzieren.
Ich habe mal mit der Berichtsdatei “VariableForum.lsr” versucht, das so wie von dir beschrieben nachzubauen, die ausgegeben Werte in der Tabelle stimmen hier allerdings überein. Die Berichtsdatei wurde allerdings mit List & Label 31 erstellt, öffnen könntest du sie mit Hilfe der Beispielanwendung von List & Label.
Da du mit List & Label 26 das Verhalten hast, lässt sich das ggf. auch noch in List & Label 31 nachstellen?
Um Punkt 2 anzusprechen: Es kann wie von Jochen beschrieben von der Reihenfolge abhängig sein. Siehe Screenshot. Ein Objekt mit Inhalt der Variable A, welches sich nur auf die Datenzeile der Tabelle bezieht, hat vor dem Druck der Tabelle den ersten Zeilenwert (nur dieser ist zu dem Zeitpunkt bekannt), am nach Druck der Tabelle den letzten Wert.