Checkbox automatisieren
Hallo liebes Ninox Forum,
ist es möglich Checkboxen zu automatisieren? Sprich wenn beispielsweise 3 Textfelder vollständig mit Inhalt gefüllt sind, dass dann der Slider einer Checkbox oder eines Auswahlfeldes auf "Ja" bzw. "erledigt" springt? Am liebsten würde ich es noch farblich kennzeichnen,
Danke im Voraus :)
7 Antworten
-
Hallo Reinhard, man könnte bei jedem der drei Textfelder unter "Nach Änderung ..." folgenden Code hinterlegen:
if Text1 and Text2 and Text3 then Status = "Erledigt" end
Damit prüft man aber nur, ob die Felder überhaupt einen Inhalt haben. Ob der "vollständig" ist, steht natürlich auf einem anderen Blatt. Man könnte die Abfrage aber noch um eine Mindestmenge an Zeichen erweitern, die eingegeben worde sein müssen. Zum Beispiel so:
if length(Text1) > 5 and length(Text2) > 20 and length(Text3) > 10 then Status = "Erledigt" end
Weitergehende Plausibilitätsprüfungen sind natürlich möglich, wären aber entsprechend aufwändiger.
Wie immer: Nach bestem Wissen und Gewissen, aber ohne Gewähr.
-
Danke für die schnelle Nachricht, das klappt leider nicht mit einem Auswahlfeld. Muss das Feld "Status" ein Formelfeld sein?
-
Hallo Reinhard,
"Status" muss kein Formelfeld sein, die Formel(n) gehören wie gesagt als Trigger nach Änderung in die betreffenden Text-Felder. Ist Status ein Auswahlfeld, dann weist Du die der gewünschten Option entsprechende Nummer zu, z.B.
Status := 1
Wichtig ist auch der von Copytexter unterschlagene Doppelpunkt bei der Zuweisung... ;-)
lg, Torsten
-
Moin, danke für den Hinweis auf den "unterschlagenen" Doppelpunkt (ich sammle die alle in einem Versteck, und wenn ich genug zusammen habe, mache ich 'nen Laden auf).
Die Zuweisung des Auswahlfeldes kann aber durchaus auch als Text erfolgen. Ich bevorzuge diese Variante sogar, weil sie den Code besser lesbar macht.
-
Ach so, "Nachteil" der Text-Variante ist natürlich, dass der String exakt dem der jeweiligen Option entsprechen muss. Das "Erledigt" war natürlich nur ein Beispiel und wäre ggf. durch den korrekten String zu ersetzen.
-
Perfekt, dank der unterschlagenen Doppelpunkte funktioniert es nun. Besten Dank.
Einziges verbleibendes Problem: Lösche ich nun den Text in einem Feld, wird der Status nicht zurückgesetzt.
Was ich mit dem Zusatz wie folgt gelöst habe:
if length(Text1) > 5 and length(Text2) > 20 and length(Text3) > 10
then Status := 1
else Status := 2
end
Besten Dank!
-
Perfekt! Die Code-Fragmente, die man hier auf die Schnelle eintippt, sind ja in der Regel erst mal nur als Hilfe zur Selbsthilfe gedacht. (Apropos: Dass die Zahlen 5 , 10 und 20 auch nur Beispiele waren und natürlich beliebig angepasst werden können, ist dir sicher ebenfalls klar, nehme ich an.)
Content aside
- vor 5 JahrenZuletzt aktiv
- 7Antworten
- 2079Ansichten