0

Eintrag/Farbe im Kalender nur beim Zutreffen einer Bedingung möglich?

Hallo zusammen,

ich möchte gerne den Kalendereintrag und die Farbe nur eintragen lassen, wenn eine bestimmte Bedingung erfüllt ist. Wie muss die Befehlszeile in „Anzeigen als" lauten, damit das funktioniert?

Farbe Kalender

Wenn das Feld „Zahl" gefüllt ist, soll der Eintrag und die Farbe im Kalender erscheinen, wenn das Feld leer ist, soll auch kein Eintrag/Farbe erfolgen

Bedingung

Aktuell sieht das ganze noch so aus, weil ich in der Tabelle „Statistik" für jeden Tag auch ein Datum eingetragen habe

Kalender

Bei der Befehlszeile scheitere ich aktuell daran, den Eintrag/Farbe als leer einzutragen, wenn die Zahl gefüllt ist. Bisher habe ich nur die Lösung gefunden, wenn andere Angaben aus den Tabellenfeldern angezeigt werden sollen.

Über Tipps würde ich mich freuen

Viele Grüße
Markus

8 Antworten

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

    Hallo Markus, die Farbe allein ließe sich über die styled()-Funktion ändern, die Anzeige an sich m. W. jedoch nicht. Man könnte aber ein zweites Datumsfeld erstellen und beim Eintrag einer Zahl automatisch mit dem Wert des ersten Datumsfeldes befüllen. Dazu im Feld "Zahl" unter "Nach Änderungen" folgenden Code eintragen:

    if Zahl != null then
       Datum2 := Datum
    else
       Datum2 := null
    end

    Das zweiten Datumsfeld (Datum2) könnte man ausblenden, so dass man es im Formular nicht sieht. Und die Einstellung "Im Kalender anzeigen" würde man bei "Datum" auf "Nein" setzen, bei "Datum2" auf "Ja". Es würden dann im Kalender nur noch Daten der Datensätze angezeigt, bei denen das Feld ZAHL einen Inhalt hat.

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

    PS: Wenn du die Farbe (oder den Text) eines Kalendereintrags in Abhängigkeit einer Bedingung ändern willst, dann kannst du das über einen entsprechenden Code bei "Anzeigen als" steuern. Wenn also bspw. der Kalendereintrag in Orange angezeigt werden soll, falls die Zahl größer 10 ist, dann müsste das so gehen:

    if Zahl > 10 then
        styled("Anzeigetext", "Orange")
    end

    • Markus.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter, vielen Dank für die schnelle Antwort, das werde ich nachher gleich mal testen 👍🏼

    • Markus.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Cool, das funktioniert schon mal bei der Neueingabe. Wie bekomme ich es denn hin, dass die anderen Felder nachträglich gefüllt werden, also dass das Datum eingetragen wird, wenn die Zahl gefüllt ist?

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

    Am schnellsten über die "Massendatenänderung" (im Zahnradmenü). Dort beim Feld 'Datum2' (oder wie es bei dir heißt) "Berechneten Wert zuweisen" auswählen und folgenden Code eingeben:

    if Datum and Zahl and not Datum2 then
       Datum
    end

    Angaben wie immer ohne Gewähr! Aber wenn man dann unten rechts auf "Weiter" klickt, dann sieht man die Auswirkung und kann den Vorgang ggf. noch abbrechen (oder die "Änderungen durchführen").

    • Markus.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Bevor ich die Massenänderungen durchführe, wollte ich noch die Formatierung anpassen. Hiermit werden mir die jeweiligen Zahlen angezigt, solange die Felder gefüllt sind, das klappt auch alles

    if Zahl = 1 then
    styled(if Zahl then Zahl end + if 'Feld 0,5' then " | " + 'Feld 0,5' end + if 'Feld 1' then " | " + 'Feld 1' end + if 'Feld 2' then " | " + 'Feld 2' end, "Green")
    else
    if Zahl = 2 then
    styled(if Zahl then Zahl end + if 'Feld 0,5' then " | " + 'Feld 0,5' end + if 'Feld 1' then " | " + 'Feld 1' end + if 'Feld 2' then " | " + 'Feld 2' end, "Orange")
    else
    if Zahl > 2 then
    styled(if Zahl then Zahl end + if 'Feld 0,5' then " | " + 'Feld 0,5' end + if 'Feld 1' then " | " + 'Feld 1' end + if 'Feld 2' then " | " + 'Feld 2' end, "Red");
    end
    end

    Aber eigentlich möchte ich auch die Zahl 0 anzeigen, wenn das Feld nicht gefüllt ist. Also z.B.: 1 | 0 | 0 | 1

    Wenn ich dann diesen Ausdruck ergänze, wird mir allerdings ein Fehler angezeigt

    + if 'Feld 0,5' then " | " + 'Feld 0,5' else 0 end 

    Wo kann denn da der Fehler liegen?

    Schöne Weihnachten wünsche ich 

    Markus

     

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Markus,

    der Fehler liegt an der Formatierung. Du versuchst die Zahl in ein Text einzubringen. Ich würde die 0 mit anführungzeichen umklammern:

    + if 'Feld 0,5' then " | " + 'Feld 0,5' else " | 0" end

    Leo

    • Markus.1
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Perfekt 👍🏼 so funktioniert es. Hatte mich wohl etwas irritieren lassen weil dieser Code funktioniert hatte

    if Zahl then Zahl else 0 end 

    Danke Dir, Markus