0

Zahlen Eingabe im Datensatz vorgeben

Hi,

wenn ich einen Datensatz in meine Tabelle eingeben will, muss unter anderem eine Kommissionsnummer eingegeben werden.

Wie kann ich es machen, dass die Kommissionsnummer automatisch angegeben wird bzw dass die nicht falsch eingegeben wird?

 

Beispiel:

KOM = 210010

nächste KOM = 210020

usw.

 

Gibt es auch die Möglichkeit das Zahlenformat 21 001 0 anzuzeigen?

 

Gruß und danke ...

16 Antworten

null
    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Hallo LR,
    da muß man mehrere Annahmen machen:

    angenommen dass,

    1. die Nummern fangen jedes Jahr neu an

    2. die Nummern gehen immer in der Positionen 3 bis  5 und die letzte Stelle ist immer 0.

    3. Zahlenformat ist 21 001 0

    Zuerst -  das Feld KOM sollte ein Textfeld sein.

    Jetzt ein Trigger bei neu aus Tabellenebene:

    ---

    let myMax := max((select TABELLENNAME).number(item(split(KOM, " "), 1)));
    KOM := format(now(), "YY ") + format(myMax + 1, "000") + " 0"

    ---

    Leo

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Habe die Bedingunf für Jahr vergessen:

    ---

    let myMax := max((select TABELLENNAME where year(_cd)=year(today())).number(item(split(KOM, " "), 1)));
    KOM := format(now(), "YY ") + format(myMax + 1, "000") + " 0"

    ---

    Leo

    • Verschleisstechnik Kinast GmbH
    • green_scarf
    • vor 3 Jahren
    • Gemeldet - anzeigen

    In neuer Tabelle funktioniert das super, aber irgendwie nicht in meiner bereits befüllten.

    was mache ich falsch?

    letzter Datensatz: 20 447 0

     

    er erstellt immer 21 499 0 ...

     

    auch wenn ich den Datensatz 21 001 0 manuell eingebe

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Kann es sein, dass irgendwo ein Tippfehler suche bitte 21 498 0 in der Tabelle

    • Verschleisstechnik Kinast GmbH
    • green_scarf
    • vor 3 Jahren
    • Gemeldet - anzeigen

    ja hatte ich auch gedacht, aber nicht gefunden.

    ich habe ein wenig rumgespielt und jetzt erzeugt er immer 21 479 0

     

    auch wenn ich Ihn lösche ...

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Gedankenfehler, Wenn man die Datensätze mit KOM 20.... in 2021 erstellt, dann kommt alles durcheinander. Versuch es mal so:

    ---

    let myMax := max((select TABELLENNAME [ item(split(KOM, " "), 0)=format(today(),"YY")].number(item(split(KOM, " "), 1)));
    KOM := format(now(), "YY ") + format(myMax + 1, "000") + " 0"

    ---

    • Verschleisstechnik Kinast GmbH
    • green_scarf
    • vor 3 Jahren
    • Gemeldet - anzeigen

    nope same...

    ich habe versucht alle 21er Datensätze zu löschen oder mal den ersten manuell einzugeben

    er erstellt 214970

    habs probiert mit KOM als Pflichtfeld und ohne

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Da es bei mir funktioniert, bleibe ich bei dem Tippfehler. 
    erstell einen Datensatz mit 21 600 0 und prüfe ob der nächste 21 601 0 wird. Wenn ja, hast du definitiv irgendwo ein Tippfehler, wenn nein - gebe ich auf. 

    • Verschleisstechnik Kinast GmbH
    • green_scarf
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ansatz habe ich:

    18er Sätze von 180010 bis 184960 !!!!

    19er Sätze von 190010 bis 194930

    20er Sätze von 200010 bis 204470

     

    Egal was ich mache er startet immer bei 214970, daher denke bezieht er sich auf die 18er Nummer

    danach läuft ja auch alles richtig weiter

    • Ninox-Professional
    • planoxpro
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Abgesehen davon, dass hinter TABELLENNAME eine schließende Klammer fehlt, funktioniert Leos Code auch bei mir einwandfrei.

    • Verschleisstechnik Kinast GmbH
    • green_scarf
    • vor 3 Jahren
    • Gemeldet - anzeigen

    wahrscheinlich weil ihr nicht so viele Datensätze drin habt wie ich ;)

    ich würde ja auch jedes Jahr das Skript ändern und die Jahreszahl von Hand eintragen, um hier weiter zu kommen.

     

    er greift bei der Nummern vergabe immer auf die 18er Sätze zurück und nicht auf die 21er

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Es ist egal wie fiele Datensätze du in der Tabelle hast. Ich würde es so überprofen. Geh bitte in den Datensatz mit 18 496 0 und erstelle dort das Funktionsfeld mit der Formel:

    item(split(KOM, " "), 0)

    was wird angezeigt?

    • Verschleisstechnik Kinast GmbH
    • green_scarf
    • vor 3 Jahren
    • Gemeldet - anzeigen

    18

    • Verschleisstechnik Kinast GmbH
    • green_scarf
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Steh ich auf dem Schlauch? Hilft mir diese Info?

    wie sollte ich weitermachen? Bin für jeden Vorschlag dankbar

    • Leonid_Semik
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Nein, ich stehe genauso wie du auf dem Schlauch. Ich würde noch eine Spalte einblenden und dort ein Formel hinterlegen:

    extractx(KOM, "\d{2} \d{3} \d")

    Die prüft ob die Nummern alle in dieser reinfolge geschrieben sind XX XXX X

    Wenn etwas nicht stimmt, sollte da leer sein. 

    • Verschleisstechnik Kinast GmbH
    • green_scarf
    • vor 3 Jahren
    • Gemeldet - anzeigen

    alles korrekt ...

    verrückt