NEWS
Zwei Objekte in vis Binding vergleichen
-
Guten Abend zusammen,
ich verzweifle gerade etwas an den Skripten in vis.
Ich habe mir eine nette Ansicht mit den aktuellen Spritpreisen aus dem Tankerkönig-Adapter zusammengebaut. Das funktioniert soweit super.
Nun wollte ich noch einbauen, dass je Kraftstoffart noch der jeweils beste Preis in grüner Schrift angezeigt wird.
Mein Lösungsansatz war ins Font & Text –> color ein Binding einzubauen
{wert1:tankerkoenig.0.stations.1.e5.combined;wert2:tankerkoenig.0.stations.cheapest.e5.combined; (wert1==wert2) ? "green" : "#EEEEEE"}
Leider funktioniert das nicht. Die Schrift bleibt schwarz, was genau genommen keine der beiden Möglichkeiten entsprich die vorgegeben habe.
Ich habe das Binding auch Testweise an anderen Stellen (z.B. HTML Widget) als Text probiert und bekomme dabei einfach eine 0.
Kann mir jemand einen Tipp geben wo mein Denkfehler liegt?
EDIT: Habe es herausgefunden! Über Child_Process.spawn ging was. Fertiges Script zur Einbindung poste ich gleich in den Funktionsansagen.
-
Hallo @soulforged,
wo finde ich denn diese Lösung? Die SuFu und das Durchsuchen Deiner Postings hat mich leider nicht weiter gebracht.
Beste Grüße
Lumpie -
@soulforged
meist kommen die werte als text an. wenn sie textmäßig exakt gleich sind
dann müsste der vergleich funktionieren. am besten du wandelst die werte jeweils mit parseFloat um. -
-
@homoran
stimmt, aber dann ist es halt so als ob lumpie die frage gestellt hat -
@oliverio @Homoran
Danke für Eure Antworten. Ich war gerade noch beruflich eingebunden, weshalb ich mich etwas verspätet zurückmelde.Es geht um einen Abgleich von IST-Temperatur je Raum zu SOLL-Temperatur.
Ich habe zwei Objekte
-current
-set-pointBeide liefern einen Wert in folgendem Format:
current: "22.5"
set.point: "21.5"Bedeutet: Im Raum sind 22.5°C, voreingestellte SOLL-Temperatur ist 21,5°C
Nach einem Vergleich der beiden Werte möchte ich eine VIS Darstellung auslösen.
current > set-point
current = set-point
current < set-pointIch könnte mir vorstellen, dass je nach Ergebnis unterschiedliche Bilder dargestellt werden sollen oder aber der Wert (current) mit einer dem Ergebnis entsprechenden Formatierung angezeigt wird.
Ich bin seit meiner Eingangsfrage schon einen Weg voranggekommen.
{v1:object.Current; v2:object.Set-Point; parseFloat(v1) > parseFloat(v2) ? "gut" : "schlecht"}
Dies führt in einem html widget zu einer textlichen Darstellung "gut" oder eben "schlecht"
Wobei ich noch unsicher bin oder der "." in den Werten den Vergleich wirklich korrekt umsetzt.
Es klemmt nur noch dabei, wie ich daraus eine unterschiedliche Formatierung erzeuge oder wie ich abhängig vom Ergebnis des Vergleichs unterschiedliche Bilder darstelle.
Danke für's Lesen und vielleicht könnt ihr mir ja bei den letzten Metern helfen?
vg
Lumpie -
@lumpie sagte in Zwei Objekte in vis Binding vergleichen:
current: "22.5"
set.point: "21.5"dann zeig mal davon die Objektdaten
edit:
obwohl du ja schon am Etappenziel zu sein scheinst. -
@homoran wie meinst du das?
-
current state value.temperature
set-point state level.temperature -
@lumpie hat sich wahrscheinlich erledigt.
ich wollte die Rohdaten sehen.
wenn du schon gut und schlecht anzeigen kannst, was fehlt dir noch genau?
-
@lumpie
der punkt ist hier korrekt
javascript arbeitet bei fließkomma zahlen mit einem punkt, wo wir hier mit einem komma arbeiten -
Es klemmt nur noch dabei, wie ich daraus eine unterschiedliche Formatierung erzeuge oder wie ich abhängig vom Ergebnis des Vergleichs unterschiedliche Bilder darstelle.
ich habe offenbar eine Denkblockade wie ich das Erreichte nun einsetze um eine "bedingte Formatierung" bei der Anzeige des Current-Wertes zu erzeugen und wie ich abhängig von dem Ergebnis "gut" Bild A und bei "schlecht" Bild B anzeigen lasse.
Wahrscheinlich trivial - aber wenn ich diese Bindings in anderen Widgets nutzen möchte scheitere ich.
-
@oliverio ok. danke - in der Objekt-Bibliothek wird das Ergebnis auch mit "," dargestell.
-
Für die Formatierung habe ich es hinbekommen - mir war nicht klar dass ich das Binding auch in dem Feld css-color eintragen kann. Habe heute eine Menge über Bindings gelernt. Mit den Bildern bekommen ich dass dann auch hin.
Danke für Eure Hilfe
-
@lumpie
bei komplexeren css anpassungen kannst du diesen einen namen geben und im css reiter eintragen
im widget gibt es ein Feld Klasse das du dann mit binding beeinflussen kannst. dann zieht das element dann die richtige css-klasse