Kundennummer automatisch vergeben?
Hi @all!
Bin ein absoluter Ninox Neuling und will meine Kundendatenbank so anlegen, dass die Kundennummer automatisch vergeben wird und sich bei Neuanlage automatisch um die Zahl 1 erhöht.
Als Format benötige ich folgendes:
AH(JahrMonatTag)-0001
also z.B.: AH20200115-0001
Da sich in der Kundennummer auch das Anlagedatum befindet, sollte sich das Datum automatisch auf den Tag der Anlage aktualisieren und die letzten 4 Zahlen sollen automatisch die Anzahl der Neuanlagen pro Tag wiedergeben.
also z.B.:
AH20200115-0001
AH20200115-0002
AH20200116-0001
AH20200116-0002
AH20200117-0001
usw.
kann mir da von Euch wer helfen?
wie kann ich die Datenbank so konfigurieren?
danke
LG
Alfred
8 Antworten
-
Hallo Alfred,
angenommen die Tabelle heißt Kunden und das Feld Kundennummer ist ein Textfeld. Dann ist ein Trigger auf Tabellenebene bei neuem datensatz:
---
let myTable := (select Kunden where substr(Kundennummer, 2, 8) = format(today(), "YYYYMMDD"));
let myNumber := max(myTable.number(substr(Kundennummer, 11))) + 1;
Kundennummer := "AH" + format(today(), "YYYYMMDD") + "-" + format(myNumber, "0000")
---
Leo
-
Hallo Leo und vielen lieben Dank für Deine rasche Antwort!
Also die Kundennummer wird jetzt in der richtigen Konfiguration automatisch in das Feld eingetragen.
VIELEN VIELEN DANK schonmal dafür!
Allerdings erhöht sich die Zahl nicht automatisch um +1
was kann da nun die Ursache sein?
Danke!
LG Alfred
-
Hallo Leo!
habe den Fehler gefunden!
Hatte sich ein Tippfehler eingeschlichen!
es funktioniert nun perfekt!
vielen lieben Dank dafür!
LG
Alfred
-
Hallo
Wollte eben selben Code nutzen nur in etwas angepasster Version da ich Folgende Ausgabe erzielen möchte.
GMYY-MM0000
GMYY-MM0001Am besten wäre es wenn die letzten Vier stellen zufällig generiert werden aber dennoch nicht doppelt vorhanden sind dann. Geht das irgendwie?
Den angepassten Code oben habe ich gelöscht und kann den deshalb nicht mehr posten :-( Aber es ging ja nicht. Was mir aber auch aufgefallen ist, mit dem oben stehenden Code erhielt ich immer selbe Kundennummer ohne +1
-
Hallo,
versuch mal damit:
---
let myNumber := floor(random() * 10000);
let myRandom := format(myNumber, "0000");
let myNumbers := concat((select Kunden).substr(Kundennummer, 7));
let myFlag := true;
while myFlag = true do
if contains(myNumbers, myRandom) then
myNumber := floor(random() * 10000);
myRandom := format(myNumber, "0000")
else
myFlag := false
end
end
;
Kundennummer := "GM" + format(today(), "YY-MM") + myRandom
---
Dabei ist der Tabellenname "Kunden" und das Feld Kundennummer ist ein Textfeld;
Leo
-
Hallo Leo
Perfekt das klappt wunderbar, vielen Dank für deine Bemühungen
gruss Sandro
-
let myTable := (select Projekte where substr(ProjektNr, 2, 8) = format(today(), "YYYYMMDD"));
let myNumber := max(myTable.number(substr(ProjektNr, 11))) + 1;
ProjektNr := format(today(), "YYYYMMDD") + "-" + format(myNumber, "0000")Funktioniert bei mir leider nicht. Nummer wird nicht hochgezählt. Immer wieder mit selber Kundennummer wird ein Projekt angelegt. Wo liegt der Fehler? Weiß jeman Rat? Danke. VG Ralf
-
Habe es gefunden ... die 2 in der erstenZeile muss 0 sein, da ich ja vorm Datum keine Zeichen habe.
Passt.
VG Ralf
Content aside
- vor 4 JahrenZuletzt aktiv
- 8Antworten
- 1519Ansichten