0

Auswahlfeld, das aber auch freie Einträge zulässt

Die Einträge in einem Textfeld stammen zu 95 % aus einer Liste von etwa 10 verschiedenen Einträgen. Diese Einträge möchte ich nicht jedesmal eintippen müssen, sondern direkt auswählen können. Ab und zu (in den restlichen 5 %) möchte ich jedoch auch einen freien Eintrag machen können. Wie löst man so etwas in Ninox?

6 Antworten

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

    Hallo, was spricht dagegen, dem Auswahlfeld eine Option namens "Andere" oder "Sonstige" hinzuzufügen und den Wert dann manuell in das betreffende Textfeld einzutragen?

    • maroon_leaf
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Das würde aber dann bedeuten, dass ich total drei Felder brauche? 1) Ein Auswahlfeld mit den Standardtexten, 2) ein Textfeld, in dem ich den Nicht-Standardtext eingeben würde (wenn im Auswahlfeld "Andere" gewählt wäre) und 3) ein Formelfeld, das den Text aus dem Textfeld 2) holt (wenn ein Eintrag vorhanden ist) oder sonst den Text aus dem Auswahlfeld 1)

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

    Wie machst du's denn jetzt? Hast du im Auswahlfeld einen Trigger, der "Nach Änderung" in Aktion tritt und je nach Auswahl das vorhandene Textfeld füllt? Oder liest du den gewählten Textwert des Auswahlfeldes in ein Funktionsfeld ein?

     

    Letzteres ginge mit der "Sonstiges"-Variante natürlich nicht, dafür bräuchte man in der Tat ein zusätzliches Eingabefeld für den Text. Das man aber ausblenden könnte und "Nur anzeigen, wenn" im Auswahlfeld "Sonstiges" gewählt wurde.

    • maroon_leaf
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Bis jetzt mache ich es noch überhaupt nicht - ich bin am Portieren einer Datenbank aus einem DB-Programm, das "Sonstige" direkt unterstützt (beim Wählen von "Sonstige" erscheint in diesme Programm ein Dialogfenster zum Eingeben einer Alternative zu den fixen Auswahlmöglichkeiten).

    Werde jetzt wohl mit drei Feldern wie oben erwähnt arbeiten: 1) Auswahlfeld mit den vorgegebenen Texten und Standardwert leer, 2) Textfeld zum eingeben einer Alternative und 3) einem Berechnungsfeld, das den Text aus 1) übernimmt, wenn 1) nicht leer ist und ansonsten 3) übernimmt.

    Danke für die Antworten.

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

    Ach so. Okay, andere Möglichkeit: in Auswahlfeld namens AUSWAHL und ein Textfeld namens TEXT. In dem Auswahlfeld kann man nun in den Feldoptionen unter "Nach Änderung folgendes Script ausführen" folgenden Code nutzen:

    if AUSWAHL != null then
        TEXT := if text(AUSWAHL) = "Sonstiges" then "" else text(Auswahl) end
    else
        TEXT := ""
    end

     

    Das heißt, wenn "Sonstiges" gewählt wurde, bleibt TEXT leer ("") und muss manuell gefüllt werden, ansonsten wird eben der jeweils gewählte Textwert übernommen. Wurde die Auswahl auf "leer" (= null) gesetzt, wird auch das Feld TEXT geleert ("").

     

    Ein zusätzliches Funktionsfeld benötigt man nur, wenn man verhindern will, dass das Feld TEXT manuell geändert werden kann.

    • maroon_leaf
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Danke für diese Lösung - werde ich so umsetzen. Ich denke noch zuwenig an die "Nach Änderung folgendes Script ausführen"-Möglichkeiten.

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 6Antworten
  • 2337Ansichten