0

Text in anderer Hintergrundfarbe

Hallo zusammen ich möchte den Hindergrund jeweils andersfarbig anzeigen und habe das mit  - styled(vText, "", "warn") - probiert! imme in der IF Anweisung. Es kommt immer ein leeres Feld heraus?! So zeigt er wenigstens den WErt an :-(

Kann mir jemand helfen?

Gruß

Michael

 

let vText := "--";
let vWert := SummeAuftragsstatus;
if vWert = 0 then
vText := "Beleg abgeschlossen"
else
if vWert > 9 then
vText := "Abholbereit"
else
if vWert > 999 then
vText := "Werkstatt"
else
if vWert > 99999 then
vText := "am Lager"
else
if vWert > 9999999 then
vText := "Lieferant"
else
if vWert > 999999999 then
vText := "Bestellbereit"
else
if vWert > 99999999999 then
vText := "Warensammlung"
end
end
end
end
end
end
end;
vText

9 Antworten

null
    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo, grundsätzlich würde ich für eine solche Auswertung statt verschachtelter if-Abfragen eine switch-case-Konstruktion empfehlen. Innerhalb dieser lassen sich der jeweilige Text, die Hintergrundfarbe und (optional) das Icon festlegen. Wobei die Farben hier natürlich nur beispielhaft eingesetzt sind:

    let vText := "--";
    let vIcon := "warn";
    let vWert := SummeAuftragsstatus;
    switch vWert >= 0 do
        case vWert > 99999999999:
            vText := "Warensammlung";
            vColor := "Darkred"
        case vWert > 999999999:

            vText := "Bestellbereit";

            vColor := "Red"
        case vWert > 9999999:
            vText := "Lieferant";
            vColor := "Orange"
        case vWert > 99999:
            vText := "Am Lager";
            vColor := "Gold"
        case vWert > 999:
            vText := "Werkstatt";
            vColor := "Yellow"
        case vWert > 9:
            vText := "Abholbereit";
            vColor := "Lightgreen"
        default:
            vText := "Beleg abgeschlossen";

            vColor := "Green"
    end
    styled(vText, vColor, "", vIcon)

    Nicht getestest, deshalb: Nach bestem Wissen und Gewissen, aber ohne Gewähr.

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    oh super! Vielen Dank für deine Mühe. Das werde ich gleich ausprobieren und einfügen! 

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    jetzt bekomme ich den Fehler das die Funktion keine Datenänderung durchführen darf?

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Dann probiere es lieber mit diesem Code (oben fehlen vColor-Definition und Klammern):

     

    let vText := "--";
    let vIcon := "warn";
    let vColor := "White";
    let vWert := SummeAuftragsstatus;
    switch vWert >= 0 do
    case vWert > 99999999999:
    (
    vText := "Warensammlung";
    vColor := "Darkred"
    )
    case vWert > 999999999:
    (
    vText := "Bestellbereit";
    vColor := "Red"
    )
    case vWert > 9999999:
    (
    vText := "Lieferant";
    vColor := "Orange"
    )
    case vWert > 99999:
    (
    vText := "Am Lager";
    vColor := "Gold"
    )
    case vWert > 999:
    (
    vText := "Werkstatt";
    vColor := "Yellow"
    )
    case vWert > 9:
    (
    vText := "Abholbereit";
    vColor := "Lightgreen"
    )
    default:
    (
    vText := "Beleg abgeschlossen";
    vColor := "Green"
    )
    end;
    styled(vText, vColor, "", vIcon)

     

    Immer noch ohne Gewähr, aber mit größerer Wahrscheinlichkeit des Gelingens. ;)

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hat sich überschnitten. Hast du noch weiteren Code in dem Script als den, der da oben abgebildet ist?

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Habe den um 12:23 Uhr geposteten Code eben noch mal getestet. Auf dem Mac und im Web funktioniert er.

    • Birger_H
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Guter Versuch, aber so geht es nicht. Es ist nicht möglich in einen Switch-Case-Konstrukt Größer oder Kleiner abzufragen.

    Es sollte also heißen:

    –––
    let vText := "--";
    let vIcon := "warn";
    let vWert := round(log(SummeAuftragsstatus))+1;
    switch vWert do
    case 7:
    (vText := "Warensammlung";
    vColor := "Darkred")
    case 6:
    (vText := "Bestellbereit";
    vColor := "Red")
    case 5:
    (vText := "Lieferant";
    vColor := "Orange")
    case 4:
    (vText := "Am Lager";
    vColor := "Gold")
    case 3:
    (vText := "Werkstatt";
    vColor := "Yellow")
    case 2:
    (vText := "Abholbereit";
    vColor := "Lightgreen")
    default:
    (vText := "Beleg abgeschlossen";
    vColor := "Green")
    end
    styled(vText, vColor, "", vIcon)
    –––

    Birger

    • Ninox-Professional
    • planoxpro
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Du hast fast immer recht, Birger, aber in diesem Fall erlaube ich mir Widerspruch: Doch, das geht. Man muss bei Kleiner-/Größer-Abfragen aber noch mal die Variable nennen. "case > 9:" würde also nicht funktionieren, wohl aber "case VARIABLE > 9:"

     

    Auf diese Weise lassen sich sogar mehrere Bedingungen verknüpfen, z. B.:

    switch case VARIABLE > 0 do
        case VARIABLE > 9 and VARIABLE < 20: ...

    Steht übrigens auch so in der Referenz, die du schon so oft lobend ewähnt hast. ;)

    • Michael_Reichardt
    • vor 5 Jahren
    • Gemeldet - anzeigen

    jetzt habt ihr euch so ins Zeug gelegt! Vielen Dank ich probiere nochmal

     

    Grüße

    Michael

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 9Antworten
  • 1651Ansichten