0

Fortlaufender Rechnungsnummer plötzlich falsch!?

Hallo an alle,

die Rechnungsnummer ist plötzlich nicht mehr fortlaufend. Warum springt die nun auf 2020/0074 und ist ab dann fortlaufend? Ist das Script evtl. doch falsch? Bisher funktionierte es prima.

let Datum := today();
let y := year(Datum);
let c := cnt(select Rechnungen where year(Datum) = y);
Rechnungsnummer := format(y, "00") + "/" + format(c, "0000")

 

Vielen Dank im Voraus.

 

Gruß

Kruna

8 Antworten

null
    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Sorry, ich habe den Screenshot vergessen. Dabei ist mir aufgefallen, dass die fortlaufende Nummer mit der Datensatznummer übereinstimmt. Könnte das etwas damit zu tun haben?

     

    Bildschirmfoto 2020-06-02 um 11.50.02

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Kruna,

    kann es sein dass du zwischendurch ein Paar Datensätze gelöscht hast? Ninox zählt in deiner Formel die vorhandenen Datensätze und macht die Nummer aus der Summe. Wird zwischendurch irgendetwas gelöscht. kommt alles durcheinander.

    Eine bessere Formel wäre es:

    ---

    let c := cnt(select Rechnungen where year(Datum)=year(today());
    Rechnungsnummer := format(year(today()), "00") + "/" + format(max(c.number(last(split(Recnungsnummer,"/"))))+1, "0000")

    ---

    Leo

    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    vielen Dank für Deine Antwort.

    Nein, gelöscht habe ich keine Datensätze, aber ich habe einen Datensatz ins Minus gesetzt, also quasi storniert. Vielleicht liegt es ja daran?

    Nun habe ich deine Formel eingegeben und es kommt folgender Fehler auf:

     

    Bildschirmfoto 2020-06-02 um 12.11.40

     

    Gruß

    Kruna

    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo nochmals,

     

    Vllt sollte ich die ersten zwei Zeilen belassen und nur die Zeile 'let c' ersetzen. Gesagt getan, aber nun kommt folgende Meldung:

     

    Bildschirmfoto 2020-06-03 um 07.56.07

     

    Hat jemand eine Idee, was ich falsch gemacht habe?

     

    Gruß Kruna

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Kruna,

    Wenn du kein Datumsfeld einsetzt versuch dann mit folgender Formel als trigger bei neu auf Tabellenebene:

    ---

    Rechnungsnummer := year(today()) + "/" + format(max((select Rechnungen)[number(first(split(Rechnungsnummer, "/"))) = year(today())].number(last(split(Rechnungsnummer, "/")))) + 1, "0000")

    ---

    bitte nur diese Formel. 

    Leo

    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo,

    ich habe diese Formel in der Rechnungstabelle 'bei neuem Datensatz folgendes Script eingeben' hinzugefügt und es funktioniert nun soweit prima. Tausend Dank an dieser Stelle!

     

    Eine Frage habe ich dennoch nur zum Verständnis für mich und zwar welches Datumsfeld meinst Du?

    Ich benutze ein Datumsfeld = Rechnungsdatum oder habe ich da etwas missverstanden?

     

    Vielen Dank und Gruß Kruna

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Kruna,

    Ich habe angenommen dass das Datumsfeld bei dir einfach "Datum" heißt. Desvegen hat Ninox auch gemeckert weil er "Datum" nicht gefunden hat und es sollte "Rechnungsdatum" heißen. Da die Kommunikation hier ziemlich kompliziert ist (musste zuerst fragen wie das Datumsfeld heißt, dann die Antwort abwarten dann........) habe ich die Formel ohne einbindung des Datums gemacht. Statt dessen habe ich das heutige Datum genommen (today()). 

    Leo

    • Kruna
    • vor 4 Jahren
    • Gemeldet - anzeigen

    HAllo Leo,

     

    ah ok, jetzt habe ich es verstanden. Vielen Dank für Deine Erklärung.

    Im zweiten Ansatz hatte ich auch 'Datum' durch 'Rechnungsdatum' ersetzt, aber dann wurde das 'c' angemeckert. Da wusste ich nicht mehr weiter, warum das passiert ist.

     

    GRuß Kruna