0

Massendatenänderung

Hallo,

ich habe anstelle einem Datumsfeld ein Textfeld erzeugt. 

Derweil habe ich bereits mehr als 80 Datensätze angelegt  

Um mir jedoch das Alter an Hand vom Eingabefeld Geburtsdatum über ein Berungsfeld darstellen zu lassen, muss ich dies durch ein Datumsfeld ersetzten. 

Leider, leider bekomme ich dies nicht gebacken. 

Ich habe ein Textfeld, Geburtsdatum1 und ein Datumsfeld, Geburtsdatum. 

Vielleicht hätte schon jemand so einen ähnlichen Fall. 

9 Antworten

null
    • Urban
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Sorry, Autokorrektur spackt. 

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Urban,

    Du kannst die Datumsfelder über Massendatenänderungen füllen. Angenommen deine Texte sehen so aus : 01.03.2019, dann auf Zahnradsymbol ->Massendatenänderung->Geburtsdatum->berechneten Wert zuweisen klicken und die Formel

    ---

    date(number(substr(Geburtsdatum1, 6, 4)), number(substr(Geburtsdatum1, 3, 2)), number(substr(Geburtsdatum1, 0, 2)))

    ---

    Leo

    • Urban
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Grandios! 

    Leo vielen Herzlichen Dank. 

    • Wolfgang
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Leo, damit ich wieder etwas dazu lerne. Die Abfrage beginnt ja von ganz rechts also mit 2019 dann wird 03 abgefragt und dann die ersten beiden stellen. Demnach hätte ich ein Ergebnis 2019 03 01 erwartet, wieso wird das Datum dann richtig 01.03.2019 dargestellt.

    Danke Wolfgang 

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Wolfgang,

    wenn du ein Datum per skript erstellen möchtest, lautet der Befehl Datum:=date(YYYY,MM,DD)

    Ninox wandelt dann diesen in eine Zahl als Millisekunden und leitet an Datumsfeld. Und das Datumfeld wandelt die Zahl in gewonnte 01.03.2019

    Leo

    • Wolfgang
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Thanks

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

    Hallo,

     

    nur zur Ergänzung: Wenn das Datum nicht durchgängig im Format DD.MM.YYYY eingegeben ist (z.B. auch mal 3.6.2019), würde ich es so lösen:

     

    let myDate := split(Geburtsdatum1,".");
    date(item(myDate,2),item(myDate,1),item(myDate,0))

     

    lg, Torsten

    • Leonid_Semik
    • vor 5 Jahren
    • Gemeldet - anzeigen

    Hallo Torsten,

    eine großartige Idee. Dabei muss man aber bedenken, dass split() einen Array mit Texten ausgibt und date() die Zahlen für die konvertierung braucht. Außerdem gibt es noch der Fall, wo man die Jahre zweistellig schreibt. Wenn wir davon ausgehen, dass bei zeistelligen (oder auch ein- und dreistelligen) Jahren immer 20XX gemeint ist, wäre die Formel:

    ---

    let myDate := split(Geburtsdatum1, ".");
    let myYear := if length(item(myDate, 2)) < 4 then
    format(number(item(myDate, 2)), "2000")
    else
    item(myDate, 2)
    end;
    date(number(myYear), number(item(myDate, 1)), number(item(myDate, 0)))

    ---

    Leo

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

    Hallo Leo,

     

    verdammt, und ich hab noch überlegt, ob ich's vorher testen soll, war mir aber zu sicher. ;-)

     

    lg, Torsten

Content aside

  • vor 5 JahrenZuletzt aktiv
  • 9Antworten
  • 1429Ansichten