0

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

null
    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Alfred_H
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Alfred_H
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo!

    habe den Fehler gefunden! ☺️ Hatte sich ein Tippfehler eingeschlichen! 😉
    es funktioniert nun perfekt! ☺️👍🏼

    vielen lieben Dank dafür! 

    LG

    Alfred

    • GrischaMedia.ch
    • grischabock
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo

    Wollte eben selben Code nutzen nur in etwas angepasster Version da ich Folgende Ausgabe erzielen möchte.

    GMYY-MM0000
    GMYY-MM0001

    Am 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

    • Leonid_Semik
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • GrischaMedia.ch
    • grischabock
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Leo

     

    Perfekt das klappt wunderbar, vielen Dank für deine Bemühungen

    gruss Sandro

    • Ralf
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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

    • Ralf
    • vor 4 Jahren
    • Gemeldet - anzeigen

    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
  • 1466Ansichten