0

ID+1

Hallo,

 

im gestrigen Webinar wurde das schreibgeschützte Textfelt mit fortlaufender Nummerierung besprochen. Ich versuchte heute den Script anzupassen. Es fünktioniert auch soweit bis auf das Nummer+1. Was ist falsch?

Bildschirmfoto 2020-02-27 um 09.46.48

Bildschirmfoto 2020-02-27 um 09.47.03

let letzteNr := max((select Patienten where substr('lfd. Pat.-ID', 3, 2) = format(today(), "YY")).substr('lfd. Pat.-ID', 6));
'lfd. Pat.-ID' := "Litembo_" + format(today(), "YYYY") + "-" + format(number(letzteNr) + 1, "0000")

 

Dankeschön

5 Antworten

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

    Hallo, versuch's mal so:

     

    let letzteNr := max((select Patienten where substr('lfd. Pat.-ID', 8, 4) = format(today(), "YYYY")).substr('lfd. Pat.-ID', 13));
    'lfd. Pat.-ID' := "Litembo_" + format(today(), "YYYY") + "-" + format(number(letzteNr) + 1, "0000")

    • Christoph.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Danke....funktioniert jetzt tadellosBildschirmfoto 2020-02-27 um 13.58.12

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

    Sehr schön. Freut mich.

    • Christoph.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Könnte es sein, dass eine automatische ID zweimal vergeben wird, wenn 2 Leute gleichzeitig an der Datenbank arbeiten und was würde dann bei der Syncronisation passieren?

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

    Nein, das kann m. E. nicht sein, wenn die Vergabe der Nummer nicht an den Benutzer geknüpft ist. Mit obigem Code wird ja immer die höchste Nummer ermittelt und um 1 erhöht. Wenn also Nutzer A die Nummer "0013" erzeugt (wodurch auch immer), dann wird es eine Sekunde später bei Nutzer B die Nummer "0014" sein. Und da bei der Cloud-Version die Daten auf dem Server gespeichert sind, greifen auch immer alle Nutzer auf denselben, aktuellen Datenbestand zu.