Wir haben 15 Gäste online
Banner
PDF Drucken E-Mail
Benutzerbewertung: / 0
SchwachPerfekt 

Ease up Computed for display fields

Die Berechnungsformeln für Felder mit der Berechnungsart "computed for display" (berechnet zur Anzeige) kann man auf simple Art vereinfachen. Seit Jahren existiert die Möglichkeit, über die @funktion

@ThisName

den Feldnamen des aktuellen Feldes zu referenzieren. Dadurch ergibt sich die Möglichkeit, indiirekt das bearbeitbare Feld zu referenzieren. Gewöhnt man sich nämlich die Benamungsart

Feldname Name des eigenlichen Feldes
dspFeldname

Name des zur Anzeige berechneten Feldes

an, kann mit einer einfachen Formel dier eigentliche Feldname herausgearbeitet werden. Der erste Gedanke, mit Hilfe von @replace die Aufgabe zu lösen, z.B. mit

@replace(@ThisName;"dsp";"")

erfüllte sich nicht, das diese Formel nicht in allen letzten Versionen erwartungsgemäß unterstützt wird. Besser ist

@right(@ThisName;@Length(@ThisName)-3)

Durch diese Formel werden mit Hifle von @right allle Buchstaben des Feldnamens beginnend vom Wortende verwendet mit Ausnahme der ersten Drei.

Damit ist das Problem aber noch nicht ganz gelöst. Wir benötigen das Ergebnis als Feldnamen in einer Formel und nicht als String, was die obige Formel zurückliefert. Hier hilft ein @eval!

_FieldName:=@right(@ThisName;@Length(@ThisName)-3);

@eval(_FieldName)

liefert den Namen des bearbeitbaren Feldes als Formel zurück und wertet diese aus. Rückgabewert ist der Wert des bearbeitbaren Feldes. Somit kann diese Formel in alle Felder einkopiert werden, die im Rahmen der Maskensteuerung als Anzeigefelder verwedet werden sollen.

 

Noch viel Spaß wünscht

 

Knäpp