0

Auswahlfeld

Ich würde gerne nach dem Setzen des Auswahlfeldes gerne eine Datum in eine anderes Feld schreiben. 

Wie müsste denn die Formel ausssehen. 

Danke für eure Hilfe. 

11 Antworten

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

    Hallo Thomas, soll immer dieselbe Aktion ausgelöst werden, wenn irgendeine Option des Auswahlfeldes gewählt wird? Oder ist die Aktion abhängig von der Auswahl? Und welches Datum soll gesetzt werden bzw. wo kommt dieses Datum her?

    Wenn ich mal den einfachsten Fall annehme, dass das Tagesdatum in ein Feld namens 'Datum' geschrieben werden soll, sobald im Feld 'Auswahl' eine solche getroffen wird, dann könnte man im Auswahlfeld einen Trigger "Nach Änderung" erstellen und dort als Formel hineinschreiben:

    Datum := today()

    Aber ich vermute, dass es etwas komplizierter ist.

    • Thomas_Forster
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter,

     

    da hast du vermutlich recht. Es ist ein Auswahlfeld das heißt buchen. 1. ein 2. Aus. 

    Wenn es auf 1.Ein gesetztw rid soll er in ein Datumsfeld + Uhrzeit = Eingang das Datum setzen.

    Wenn es auf 2. Aus gesetzt wird soll er in ein Datumsfeld + Uhrzeit = Ausgang das Datum setzen.

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

    Okay, dann würde ich so versuchen (Trigger "Nach Änderung" im Auswahlfeld 'Buchen'):

    if Buchen = 1 then
        Eingangsdatum := now()
    else
        if Buchen = 2 then
            Ausgangsdatum := now()
        end
    end

    • Thomas_Forster
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke das klappt.

    Hab noch eine Frage. Mit diesem Feld Eingangsdatum möchte mit einem Zeitdauerfeld ( Restlaufzeit in Tagen ) berechnen wieviel Tage noch übrig sind um das es verbaucht wird.

    Im besten Fall vielleicht in einem anderen Feld das Datum anzeigen zu lassen.

    Danke dir

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

    Hallo Thomas, prinzipiell kein Problem, allerdings wäre es hilfreich zu wissen, worauf sich die Berechnung der restlichen Tage beziehen soll. Was genau soll berechnet werden? Die Zahl der Tage vom Eingangsdatum bis heute? Das ginge mit einem Funktonsfeld und folgender Formel:

    days(date(Eingangsdatum), today())

    Oder gibt es noch eine Information zur Dauer, also bspw. der Anzahl von Tagen bis zum "Ablaufdatum", und es sollen die heute bis dahin verbleibenden Tage angezeigt werden?

    days(today(), date(Eingangsdatum) + 14)

    Wobei die Zahl 14 natürlich auch durch ein Datenfeld ersetzt werden kann.

    Wenn man auch das "Ablaufdatum" selbst noch anzeigen lassen will, nimmt man am besten zwei Funktionsfelder. Das erste namens 'Ablaufdatum' zur Berechnung und Anzeige des Datums:

    date(Eingangsdatum) + 14

    Beim zweiten Funktionsfeld zur Berechnung der verbleibenden Tage kann man dann auf 'Ablaufdatum' Bezug nehmen:

    days(today(), Ablaufdatum)

    • Thomas_Forster
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Dankschön das funktioniert. Kann ich das auch in eine Ansicht packen die ich jeden öffne und dann die Tage verstreiche bzw sich ändern ?

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

    Welche Variante ist es denn jetzt geworden? Davon abgesehen: Ich gehe mal davon aus, dass mit "Ansicht" nicht das gleichnamige Gestaltungselement gemeint ist, welches in einem Datenformular platziert werden kann, sondern eine vollständige Tabellen-Ansicht. Letztere bieten die Möglichkeit, häufig benötigte Darstellungen der Daten in verschiedenen Formaten zu erzeugen und zu speichern, damit man die entsprechenden Einstellungen nicht immer wieder neu vornehmen muss.

     

    Im vorliegenden Fall könnte man über das Plus-zeichen also bspw. eine neue Ansicht vom Typ Tabelle erzeugen, ihr einen aussagekräftigen Namen geben (z. B. "Ablaufdaten" o. ä.) und alle benötigten Spalten ein- bzw. alle nicht benötigten ausblenden. Zusätzlich kann man bei Bedarf auch noch Gruppierungen und Filter setzen.

     

    Diese "Ansichten" sind auch in der Dokumentation beschrieben. Die Screenshots sind zwar nicht mehr ganz aktuell, aber die grundlegenden Informationen sollten trotzdem weiterhelfen:

    https://ninox.com/de/manual/datenbanken-erstellen/ansichten

    • Thomas_Forster
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Copytexter,

     

    das sieht mittlerweile so aus. Was ich jetzt gerne machen möchte. 

    Das wenn ich einen neuen Tag aufmache das mir dann die verbliebene Restlaufzeit Tagesaktuell berechnet wird. Später dann wenns drüber ist das es Farbig wird. .

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

    Das sieht WIE aus? Und was heißt "wenn ich einen neuen Tag aufmache"?

    Für eine farbige Darstellung von Berechnungsfeldern gibt es die Funktion styled():

    styled(TEXT, HINTERGRUNDFARBE, VORDERGRUNDFARBE, ICON)

    Wenn man also ein Berechnungsfeld für das Ablaufdatum hätte, könnte man es bspw. mit Erreichen des heutigen Tages rot einfärben:

    let myDate := date(Eingangsdatum) + 14
    if myDate <= today() then
        styled(text(myDate), "red", "white", "warn")
    else
        styled(text(myDate), "", "", "")
    end

    • Thomas_Forster
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Oh sorry Anhang vergessen.

    Neuen ag aufmachen bedeute neue Datensatz. Entschuldige muss immer umdenken :-)

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

    Okay, du hast also nun ein Dashboard mit eingebetteter Ansicht. Geht natürlich auch. Mit sind allerdings die Formeln nicht ganz klar. Aber wenn ich mal davon ausgehe, dass 'Ablaufdatum' ein Berechnungsfeld ist und 'Berechnete Restlaufzeit' die Zahl der Tage vorgibt,  dann könnte man die Formel in 'Ablaufdatum' wie folgt anpassen:

    let myDate := date(Eingangsdatum) + 'Berechnete Restlaufzeit';
    if myDate <= today() then
        styled(text(myDate), "red", "white", "warn")
    else
        styled(text(myDate), "", "", "")
    end

    Ähnlich könnte man auch bei anderen Berechnungsfeldern vorgehen, die man unter bestimmten Bedingungen einfärben möchte.