Listbox Typ "Entity Selection" und Farben

Guten Morgen zusammen,

Plattform: 4D V17 R4, MacOS

bei Listboxen vom Typ “Array” kann ich über ein Farbarray die Farbe der einzelnen Zellen steuern. Wie mache ich das bei Listboxen vom Typ “Entity Selection”? Habe in Dokus/Forum/KnowledgeBase nichts gefunden.

Danke für die Hilfestellung
Jann

Hallo,

das kann man über die “Meta Info Ausdruck” Eigenschaft steuern:

https://livedoc.4d.com/4Dv17-R5/help/Title/de/page3205.html

Danke für den Tipp!

Funktioniert auch prinzipiell, ich habe jetzt nur noch ein kleines Problem:
auch wenn ich es nach dem Beispiel mache, setzt er mir die Farben nach dem letzten bewerteten Ausdruck für die komplette Spalte. Will heißen: gibt der letzte Wert “purple” zurück, ist die ganze Spalte “purple” und nicht nur die letzte Zeile.
Was mache ich hier noch falsch?

Wie sieht denn der Code aus?

Analog zum Codebeispiel - meine ich zumindest:

In der Formularmethode unter “on load”:
Form.meta:=New object

Im Eigenschaftenblock “Text” unter “Meta Info Ausdruck”:
ze_Mitarbeiterwoche_CalcFarbe

Und die Prozedur “ze_Mitarbeiterwoche_CalcFarbe”:
C_OBJECT($0)
If (This.Ueberstunde)
Form.meta.cell:=New object(“o_SpalteStd”;New object(“stroke”;“green”))
Else
Form.meta.cell:=New object(“o_SpalteStd”;New object(“stroke”;“black”))
End if
$0:=Form.meta

Wenn ich trace, berechnet er auch brav für jede Zeile ob “green” oder “black”. Aber er verwendet eben die letzte berechnete Farbe für die komplette Spalte anstatt für jede Zeile die passende.

: Jann WEGNER

Analog zum Codebeispiel - meine ich zumindest:

In der Formularmethode unter “on load”:
Form.meta:=New object

Im Eigenschaftenblock “Text” unter “Meta Info Ausdruck”:
ze_Mitarbeiterwoche_CalcFarbe

Und die Prozedur “ze_Mitarbeiterwoche_CalcFarbe”:
C_OBJECT($0)
If (This.Ueberstunde)
Form.meta.cell:=New object(“o_SpalteStd”;New
object(“stroke”;“green”))
Else
Form.meta.cell:=New object(“o_SpalteStd”;New
object(“stroke”;“black”))
End if
$0:=Form.meta

Wenn ich trace, berechnet er auch brav für jede Zeile ob “green” oder
“black”. Aber er verwendet eben die letzte berechnete Farbe für die
komplette Spalte anstatt für jede Zeile die passende.

Wieso Form.meta? Benutzen Sie bitte, wie vorgesehen, $0 bzw. eine lokale Variable. Das Objekt Form.meta bleibt ja immer gleich, nur der Inhalt wird gesetzt. Das ist so falsch.

: Jann WEGNER

In der Formularmethode unter “on load”:
Form.meta:=New object

Das ist auch nicht notwendig. Wozu so kompliziert?

Jetzt klappts - vielen Dank für die Geduld!

Warum so kompliziert? Hatte das Beispiel angepasst :frowning: