SetVar() - Verhaltensänderung bei Datentypprüfung des Rückgabewertes?

Hallo !
Ich bin auf LL26 umgestiegen und erhalte nun einen Datentyp-Fehler wo vorher keiner kam.
Und zwar setze ich im Gruppenfuß einen Prozenttext in eine Tabellenzelle und möchte dann diesen in der Variable mit SetVar als Übertragwert speichern.
SetVar soll auch nichts zurückgeben, daher ist der letzte Parameter “false”.
Allerdings scheint das in LL26 keine Rolle zu spielen, ob SetVar() einen Wert returniert oder nicht…
Der Parser meckert sofern der in die Variable übergebene Wert nicht identisch mit dem Zellendatentyp (Text) ist.
Ich habe das Problem behoben, in dem ich den SetVar() Aufruf noch zusätzlich mit ToString$() versehen habe also → ToString$(SetVar(…,false)).
Schön finde ich das aber nicht… denn wenn ich doch mit dem letzten Parameter angeben kann, dass kein Wert returniert werden soll, warum muss ich mich dann darum kümmern, dass der Rückgabewert den passenden Datentyp entspricht?

Hier meine Zeile die wie gesagt einen Prozentwert als Text in die Tabellenzelle setzt und den selben Wert in die Variable addieren soll.

ToString$(Count(RELA_ZTErgebnisse.Ergebnis) / Precalc(Count(RELA_ZTErgebnisse.Ergebnis)) *100)+" %" +SetVar(“ÜbertragProzent” , NullSafe(Val(GetVar(“ÜbertragProzent”))) +Count(RELA_ZTErgebnisse.Ergebnis) / Precalc(Count(RELA_ZTErgebnisse.Ergebnis)) *100, false)

Meine “Notlösung” also mein Workarround sieht dann so aus (Änderungen FETT hervorgehoben):

ToString$(Count(RELA_ZTErgebnisse.Ergebnis) / Precalc(Count(RELA_ZTErgebnisse.Ergebnis)) *100)+" %" + ToString$(SetVar(“ÜbertragProzent” , NullSafe(Val(GetVar(“ÜbertragProzent”))) +Count(RELA_ZTErgebnisse.Ergebnis) / Precalc(Count(RELA_ZTErgebnisse.Ergebnis)) *100, false))

Hier gab es in alten Versionen in der Tat eine Schwäche im Formelparser - auch wenn SetVar() keinen Wert ausgibt hat die Funktion selber ja dennoch einen Datentypen. Der Parser selber unterscheidet hier auch nicht zwischen Funktionen die keine Ausgabe erzeugen und solchen die eine Ausgabe liefern - auch ein 0+"" ist eine fehlerhafte Formel, obwohl "" keine Ausgabe erzeugt :slight_smile:. Ihr Workaround ist damit auch die tatsächlich richtige Lösung.

© combit GmbH