Fortlaufende Nummer mit Präfix der Jahreszahl
Ich vergebe fortlaufende Nummern für Aufträge, denen ich die jahreszahl als Präfix zuordnen will ... zb sähe das dann so aus 2020-23 - also die Nummer 23 im Jahr 2020
hab das bisher damit gelöst, dass ich im enstprechenden Zahlenformat-Feld der Zahl das Präfix 2020- gesetzt habe ... jetzt merke ich, dass in dem Moment, in dem ich auf das nächste Jahr umstellen würde, das Präfix aller bisherigen Aufträge von 2020 auf eben 2021 ebenso ändern würde -was natürlich fatal wäre ...
also suche ich nach der Formel, die das Präfix aus der jahreszahl, in der der Auftfag generiert wurde entnimmt, ohne dass Gefahr vesteht, dass sich die Auftragsnummer wieder ändert ...
danke
4 Antworten
-
Hallo Astavakra, auch, wenn es spontan vielleicht seltsam klingt: Ich würde für die Nummer ein Textfeld nehmen. Erstens, weil sie ja keine Zahl im mathematischen Sinne ist, zweitens, weil man dann auch Sonderzeichen wie hier den Bindestrich integrieren kann.
Also, erst ein neues Textfeld erstellen (im folgenden NEUENR genannt), das zukünftig die Auftragsnummer beinhalten soll. Dann einen Button mit folgendem Code erstellen (oder diesen über die Konsole ausführen):
(select TABELLE).(NEUENR := text(ALTENR))
Damit hätte man schon mal alle bisherigen Auftragsnummern gesichert. Für neue Datensätze müsste man aber die Nummernvergabe anpassen. Ich gehe mal davon aus, dass die Zahl der laufenden Nummer bisher automatisch mit einem Trigger "Bei neuem Datensatz" hochgezählt wurde. Diesen Trigger könnte man wie folgt ändern:
let AktJahr := format(today(), "YYYY")
let LaufNr := max((select TABELLE where substr(NEUENR, 0, 4) = AktJahr).number(substr(NEUENR, 5))) + 1;
NEUENR := AktJahr + "-" + format(LaufNr, "000")
Wenn alles geklappt hat und insbesondere die alten Nummern aus dem korrekt in das neue Textfeld übernommen wurden, kann man das alte Zahlenfeld mit der Auftragsnummer löschen. Und den Button natürlich auch.
-
wow, werd mich bei zeiten drüber machen ... besten dank jedenfalls für die detaullierte antwort
-
as mir beim zwieten durchlesen noch nicht klar ist (ja, bin sehr unbedarft ;)), wie und wo ich den ersten befehl angebe - sowohl konsole als auch button sind mir als begriffe nicht wirklich klar
-
Button = Gestaltungselement "Befehlsschaltfläche"
Konsole erreichst Du bei aktiviertem Admin-Modus aus der Hauptansicht Deiner DB (Symbol vier Quadrate mit DB-Namen als Beschriftung)
Content aside
- vor 4 JahrenZuletzt aktiv
- 4Antworten
- 642Ansichten