Feldinhalt aus Stringvariablen bestimmen /

Problem 1: Ich müsste bei Ausgabe einer Gruppensumme den Wert einer Spalte dynamisch bestimmen, also hier aus einer Stringvariablen. Gibts da eine Möglichkeit?

Wert = WertAus(“Feldname01”)

Problem 2:
Den Wert einer Gruppensumme möchte ich über eine Formel bestimmen.
Wert = sum(Data_03) / sum(Data_02)

In dem Fall bekomme ich einen Fehler (Ausgabe ist “Error”) . Es wird definitiv nicht durch 0 geteilt.
Wo ist das Problem?

zu Problem 1: Leider können wir nicht ganz nachvollziehen, was hier genau gemacht werden soll. Kannst du das bitte etwas genauer erklären?

zu Problem 2: Wann genau tritt der Fehler auf? Es könnte sich um ein Anzeigeproblem im Formelassistenten handeln. Es kann sein, dass die Summe zur Designzeit noch ‘0’ ist. Tritt der Fehler auch zur Druckzeit auf?

zu1) Ich bastle mir zur Laufzeit im Report einen Feldnamen zusammen, also hab ich den Feldnamen als String. Und diesen Wert, der sich hinter diesen Name verbirgt, möchte ich eben auslesen.
zu 2) Der Fehler tritt erst zur Laufzeit auf. Im Designer wird noch nichts angemeckert. Die beiden Summen werden im Report separat ausgegeben, sind also defintiv nicht null. Nur wenn ich eben teile, kommt der Fehler.

zu1) Ich bastle mir zur Laufzeit im Report einen Feldnamen zusammen, also hab ich den Feldnamen als String. Und diesen Feldwert, der sich hinter diesen Name verbirgt, möchte ich eben auslesen. In C# wäre es das Thema Reflection.

zu 2) Der Fehler tritt erst zur Laufzeit auf. Im Designer wird noch nichts angemeckert. Die beiden Summen werden im separat ausgegeben, sind also defintiv nicht nur. Nur wenn ich eben teile, kommt der Fehler.

Hier können die Designerfunktionen Evaluate(), oder auch GetValue() weiterhelfen.

Bitte beachte, dass es notwendig sein kann, die CheckUsedIdentifiers-Eigenschaft deiner ListLabel-Instanz auf false zu setzen. Der Grund dafür ist, dass Felder, die auf diese Weise ausgelesen werden, nicht als " benutzt " gekennzeichnet und von C# dann nicht übergeben werden.

Die Funktion GetValue() macht genau das, was ich wollte. Das zweite Problem hat sich inzwischen selber gelöst. Da saß der Fehler wohl beim Programmierer.
Danke für die schnelle Hilfe

1 Like