0

Wilfried Hennen

Eine Frage: Wie schreibe ich in ein neues Feld das nächste in der Zukunft liegende Datum aus allen anderen Datumsfeldern des selben Datensatzes?

8 Antworten

null
    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Hallo Wilfried,

    habe ich richtig verstanden: 

    du hast in einem Datensatz sagen wir vier Datumsfelder. Drei davon sind gefüllt. Du möchtest jetzt aus diesen drei Datums erstmals alle wählen, welche größer als heute sind und dann aus dieser Auswahl noch das kleinste Datum wählen und dieses in das vierte Feld reinschreiben?

    wenn Ja, dann wäre die Formel für einen Button:

    ---

    let myD := today();
    let myN := 500000000 * 1000 * 60 * 60 * 24;
    for ii in ['Datum 1', 'Datum 2', 'Datum 3'] do
    if ii > today() then
    let tempN := number(ii - today());
    if tempN < myN then
    myN := tempN;
    myD := ii
    end
    end
    end;
    'Datum 4' := myD;

    ---

    Du kannst natürlich die Anzahl der Felder beliebig erweitern. 

    Leo

    • Wilfried_Hennen
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Guten Morgen Leo und herzlichen Dank für die Formel!

    Sie steht in dem neuen Berechnungsfeld "Reaktionsdatum" und sieht in angepasster Form bei mir so aus:

    let myD := today();
    let myN := 500000000 * 1000 * 60 * 60 * 24;
    for ii in ['Preisgarantie bis', 'Erstlaufzeit bis', 'Kdg prüfen am', 'Kdg spätestens bis', 'Sofortbonus zahlbar bis'] do
    if ii > today() then
    let tempN := number(ii - today());
    if tempN < myN then
    myN := tempN;
    myD := ii
    end
    end
    end

    Allerdings sehe ich im Reaktionsfeld kein Datum nach heute.

    Was ist noch falsch?

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Schreib am  Ende noch:

    —-

    ;

    myD

    —-

     

    Leo

    • Wilfried_Hennen
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Vielen Danke, es funktioniert!

    Noch eine Frage:

    Wie erreiche ich, dass beim Start die DB immer nach einem bestimmten Feld sortiert wird?

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Zuerst den Bearbeitungsmodus aktivieren (Schraubenschlüssel oben rechts auf rot), dann die Sortierung vornehmen und dann die Änderungen speichern. Ninox übernimmt die Einstellungen.

    Leo

    • Leonid_Semik
    • vor 6 Jahren
    • Gemeldet - anzeigen

    Zuerst den Bearbeitungsmodus aktivieren (Schraubenschlüssel oben rechts auf rot), dann die Sortierung vornehmen und dann die Änderungen speichern. Ninox übernimmt die Einstellungen.

    Leo

    • Wilfried_Hennen
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leonid Semik,

    ich habe von Ihnen im September 2018 Hilfe bei der Erstellung einer Formel erhalten, welche bis vor wenigen Tagen immer korrekt gelaufen ist. Die Formel lautet:

    if Vertrag_beendet then
    Vertrag_beendet
    else
    let myDD := [Strom_ablesen, Preisgarantie_bis, Vertragsende, 'Kdg_prüfen_60Tg', 'Kdg_prüfen_42Tg', 'Kdg_spätestens', SoBonus_bis];
    let myARR := for i in myDD do
    if i > today() then i end
    end;
    if max(myDD) < today() then Vertrag_beendet else min(myARR) end
    end

    Wenn ich nunmehr die Anwendung ninox starte, erscheint seit kurzem folgende Fehlermeldung:

    "Eine Tabellenspalte wurde nicht gefunden: T5 in Zeile 1, Spalte 81"

    Trotz intensiver Suche kann ich keinen Fehler in der Formel finden.

    Können Sie mir helfen?

    Wilfried

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Wilfried, 

    so eine Meldung bedeuted, dass ein Feld vor kurzem gelöscht wurde. Ninox ersetzt dann den Namen des gelöschten Felds dur frühere interne Bezeichnung. Hast du irgendwelche Formeln, die beim Start ausgefüt werden? 

    Optionen - > beim Start ausführen.

    Leo