BBrowser Frage

Deutschsprachiges X#-Forum – German language forum

Moderator: wriedmann

Post Reply
Rolli
Posts: 12
Joined: Mon Jul 08, 2019 10:48 am

BBrowser Frage

Post 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
User avatar
ArneOrtlinghaus
Posts: 495
Joined: Tue Nov 10, 2015 7:48 am
Location: Italy

Re: BBrowser Frage

Post 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
Rolli
Posts: 12
Joined: Mon Jul 08, 2019 10:48 am

Re: BBrowser Frage

Post by Rolli »

Danke Arne,

es ist also nicht möglich irgenwo im Programm einfach die Farbe einer Zelle zu ändern ohne bColorCondition ?

Rolf
User avatar
wriedmann
Posts: 4079
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Re: BBrowser Frage

Post by wriedmann »

Hallo Rolf,
der bBrowser ist datenbasiert.
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
User avatar
Joachim Bieler
Posts: 39
Joined: Mon Aug 19, 2019 1:51 pm
Location: Germany

Re: BBrowser Frage

Post 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
Rolli
Posts: 12
Joined: Mon Jul 08, 2019 10:48 am

Re: BBrowser Frage

Post 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
User avatar
Joachim Bieler
Posts: 39
Joined: Mon Aug 19, 2019 1:51 pm
Location: Germany

Re: BBrowser Frage

Post 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
Attachments
Sample - ColorCondition (Rolf).zip
(7.01 KiB) Downloaded 49 times
Rolli
Posts: 12
Joined: Mon Jul 08, 2019 10:48 am

Re: BBrowser Frage

Post by Rolli »

Hallo Joachim,
vielen Dank für Deine ausführliche Hilfe. Dadurch habe ich das Problem gelöst.
Viele Grüße
Rolf
Post Reply