Hallo Wolfgang,
im Prinzip wie Du das jetzt schon machst. Halt nur mehrere IIF-Abfragen ineinander verschachtelt.
Code: Alles auswählen
oSpalte:colorBlock := {|x| IIf(Empty(aPositionen[nRecnoPosition]:projekt) .AND. aPositionen[nRecnoPosition]:prodmita < 1, ; // Arbeitszeit für Kundenauftrag
{GRA_CLR_BLACK, hintergrundgruen()}, ;
IIf(aPositionen[nRecnoPosition]:prodmita < 1, ; // Es gibt kein Produktionsdatum = Artikel
{GRA_CLR_BLACK, hintergrundgelb()}, ;
{GRA_CLR_BLACK, GRA_CLR_BACKGROUND}))}
Das Problem ist: Das wird dann auch ganz schnell mal unübersichtlich. Ich lagere das dann gerne aus.
Code: Alles auswählen
oSpalte:colorBlock := {|x| farbenBrowseAuze(nSpalte)} // Die Farben extern zusammenstellen, wird sonst riesige IIF()-Schachtelei
...
FUNCTION farbenBrowseAuze(nSpalte)
LOCAL aColorBlock := {}
LOCAL cHintergrund := GRA_CLR_BACKGROUND
LOCAL cVordergrund := GRA_CLR_BLACK
plzregion->(myDbSeek(SubStr(auze->plz, 1, 2)))
IF SubStr(auze->zeilpos, 1, 4) == " 1/"
cVordergrund := GRA_CLR_RED
ELSEIF auze->versandort[1] $ MEMVAR->gcLagerbereicheGaertnerei .AND. Len(AllTrim(auze->versandort)) < 2
cVordergrund := GRA_CLR_BLACK
...
ENDIF
aColorBlock := {cVordergrund, cHintergrund} // Vorder- und Hintergrundfarben dem ColorBlock zuweisen
RETURN aColorBlock
Jan