0

Fortlaufende Nummer wenn ein Datensatz gelöscht wird

Hallo zusammen!

Kompletter Laie und grad total aufgeschmissen :/ 

Ich habe folgendes Problem. Ich versuche ein Protokoll für unsere Notfallhilfe/First Responder zu digitalisieren. Nun will ich natürlich auch eine Laufende Nummer/Einsatzidentifikationsnummer in das Protokoll aufnehmen. Zurzeit sieht das ganze bei "bei neuem Datensatz folgendes Skript ausführen" so aus: 

let AktJahr := year(today());
let LaufNr := cnt(select 'NFH Protokoll' where year(Einsatzdatum) = AktJahr);
Einsatzidentifikationsnummer := "No" + "_" + AktJahr + "_" + format(LaufNr, "000")

Das ist ja schonmal ganz gut, aber sobald ich nun einen Datensatz vorher lösche und nun dann ein neuer Einsatz stattfindet läuft dieser unter der selben Einsatzidentifikationsnummer wie der vorherige. Das ist suboptimal.

Kann mir hierbei jemand helfen?

Liebe Grüße David

6 Antworten

null
    • Davidfiko
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo zusammen!

    Kompletter Laie und grad total aufgeschmissen :/ 

    Ich habe folgendes Problem. Ich versuche ein Protokoll für unsere Notfallhilfe/First Responder zu digitalisieren. Nun will ich natürlich auch eine Laufende Nummer/Einsatzidentifikationsnummer in das Protokoll aufnehmen. Zurzeit sieht das ganze bei "bei neuem Datensatz folgendes Skript ausführen" so aus: 

    let AktJahr := year(today());
    let LaufNr := cnt(select 'NFH Protokoll' where year(Einsatzdatum) = AktJahr);
    Einsatzidentifikationsnummer := "No" + "_" + AktJahr + "_" + format(LaufNr, "000")

    Das ist ja schonmal ganz gut, aber sobald ich nun einen Datensatz vorher lösche und nun dann ein neuer Einsatz stattfindet läuft dieser unter der selben Einsatzidentifikationsnummer wie der vorherige. Das ist suboptimal.

    Kann mir hierbei jemand helfen?

    Liebe Grüße David

    • UweG
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Woher soll denn dein Script wissen, dass die vergebene Nummer bereits vergeben wurde und wieder gelöscht wurde.

    Entweder darfst du nicht löschen oder du baus dir eine Hilfstabelle, in der alle Nummern gespeichert werden und die dann zur Berechnung der neuen Nummer herangezogen wird. In dieser Hilfstabelle darf dann nichts gelöscht werden, während es in der Haupttabelle dann unschädlich ist.
    Ich hoffe, ich habe deine Frage richtig verstanden.

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo David

    ---

    let maxNr := max(select 'NFH Protokoll' [ year(Einsatzdatum) = year(today())].number(last(split(Einsatzidentifikationsnummer,"_")))) ;
    Einsatzidentifikationsnummer := "No" + "_" + year(today()) + "_" + format(maxNr+1, "000")

    ---

    Leo

    • Davidfiko
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Vielen Dank für die schnelle Hilfe!!

    • Davidfiko
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ich habe das soeben ausprobiert, jedoch zählt die laufende Nummer nun nicht. Bleibt bei jedem neuen Fall bei 001

     

    Kannst du auch da weiter helfen?

    Liebe Grüße david

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

    Hallo David, die Formel sieht korrekt aus. Wenn du einen neuen Datensatz anlegst, musst du allerdings immer auch das 'Einsatzdatum' eingeben, denn darauf beruht ja die select-Anweisung.

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 6Antworten
  • 626Ansichten