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
-
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?
-
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
-
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:
Gruß
Kruna
-
Hallo nochmals,
Vllt sollte ich die ersten zwei Zeilen belassen und nur die Zeile 'let c' ersetzen. Gesagt getan, aber nun kommt folgende Meldung:
Hat jemand eine Idee, was ich falsch gemacht habe?
Gruß Kruna
-
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
-
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
-
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
-
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
Content aside
- vor 4 JahrenZuletzt aktiv
- 8Antworten
- 788Ansichten