Page 1 of 1
BBrowser Frage
Posted: Thu Dec 11, 2025 12:07 pm
by Rolli
Hallo,
ich versuche seit Stunden ein eigentlich einfaches Problem zu lösen.
Wie kann ich im BBrowser für VO in einer einzelnen Zelle während des Programmlaufs die Farben ändern, ohne irgendwelche Bedingungen anzugeben ?
Wie z.B. oCell:Background := ...
Ich finde nichts. Bin ich zu blöd oder geht das nicht.
Vorab vielen Dank
Rolf
Re: BBrowser Frage
Posted: Fri Dec 12, 2025 9:53 am
by ArneOrtlinghaus
Meiner Meinung nach muss oder sollte man mit Bedingungen arbeiten. Nur die Spalten sind fest zuzuordnen, die Zeilen ändern sich dynamisch entsprechend den Daten. Aber ich kann mich auch täuschen.
Gruß
Arne
Re: BBrowser Frage
Posted: Fri Dec 12, 2025 11:48 am
by Rolli
Danke Arne,
es ist also nicht möglich irgenwo im Programm einfach die Farbe einer Zelle zu ändern ohne bColorCondition ?
Rolf
Re: BBrowser Frage
Posted: Fri Dec 12, 2025 12:14 pm
by wriedmann
Hallo Rolf,
der bBrowser ist datenbasiert.
Wolfgang
Re: BBrowser Frage
Posted: Fri Dec 12, 2025 5:57 pm
by Joachim Bieler
Hallo Rolf,
mit den Farbbedingungen im bBrowser kann ziemlich viel gemacht werden. Sie sind ziemlich flexibel und die Bedingun(en) können sowohl einfach, als auch hochkomplex sein.
Vielleicht wäre es hilfreich, wenn du etwas genauer beschreiben würdest, was genau du machen möchtest. Wie würdest du denn die einzelne Zelle, die im bBrowser eingefärbt werden soll, ermitteln?
Gruß
Joachim
Re: BBrowser Frage
Posted: Sat Dec 13, 2025 9:58 am
by Rolli
Hallo Joachim,
ich möchte in einer Zeile mit numerischen Werten ab Spalte 2 den kleinsten Wert grün und den größten Wert rot anzeigen.
Die Spaltennamen sind B_01, B-02, ...
Die Inhalte können nicht geändert werden.
Vorab schon einmal vielen Dank
Rolf
Re: BBrowser Frage
Posted: Sat Dec 13, 2025 7:06 pm
by Joachim Bieler
Hallo Rolf,
ich habe eine kleine Beispiel-Applikation entwickelt, in der Farbbedingungen definiert werden, wie du sie benötigst. Hierbei habe ich mich auf 5 B-Felder (B_01, B_02, .. B_05) beschränkt. Bei Bedarf können aber auch noch mehr B-Felder definiert werden. Weil in der Farbbedingung mehrere Feldwerte B_01, B_02, .. B_05 gegeneinander geprüft werden müssen, habe ich diese Prüfung in eine Funktion ausgelagert, die in der Farbbedingung aufgerufen wird. Die Funktion heißt in meiner Beispiel-Applikation CheckMinMaxValueInRecord(). Die Farbbedingung wird für jede Datenspalte der Felder B_01 .. B_05 definiert. Meine Funktion CheckMinMaxValueInRecord() bekommt neben den Datenserver auch den Feldnamen der Datenspalte übergeben.
Normalerweise sollte die Farbbedingung einen logischen Wert (True oder False) als Ergebnis zurückgeben. Möglich ist aber auch, dass die Farbbedingung ein sogenanntes ColorSpec-Array zurückgibt. In dem Fall gilt die Bedingung als erfüllt - also genauso als würde der Wert True zurückgegeben werden. Dadurch besteht die Möglichkeit, dass meine Funktion 3 unterschiedliche Ergebnisse zurückgeben kann:
- Ergebnis 1:
Der Feldwert ist der kleinste Wert bezogen auf die Felder B_01 .. B_05.
-> Der Rückgabewert ist ein ColorSpec-Array mit der Hintergrundfarbe Grün.
- Ergebnis 2:
Der Feldwert ist der größte Wert bezogen auf die Felder B_01 .. B_05.
-> Der Rückgabewert ist ein ColorSpec-Array mit der Hintergrundfarbe Rot.
- Ergebnis 3:
Der Feldwert ist weder der kleinste noch der größte Wert bezogen auf die Felder B_01 .. B_05.
-> Der Rückgabewert ist False.
Damit du meine Vorgehensweise besser verstehen kannst, habe ich meine Beispiel-Applikation beigefügt. Als Einstieg in die Applikation empfehle ich, dass du dir im Modul 'dtwColorCondition (Window)' die Methode dtwColorCondition:PostInit() und die Funktion CheckMinMaxValueInRecord() anschaust.
Ach ja, die Beispiel-Applikation habe ich mit dem bBrowser 4 entwickelt und getestet. Mit dem bBrowser 3 sollte es auch funktionieren.
Gruß
Joachim
Re: BBrowser Frage
Posted: Sun Dec 14, 2025 1:18 pm
by Rolli
Hallo Joachim,
vielen Dank für Deine ausführliche Hilfe. Dadurch habe ich das Problem gelöst.
Viele Grüße
Rolf