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
-
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
-
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
-
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
-
Kann es sein, dass irgendwo ein Tippfehler suche bitte 21 498 0 in der Tabelle
-
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 ...
-
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"
---
-
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
-
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. -
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
-
Abgesehen davon, dass hinter TABELLENNAME eine schließende Klammer fehlt, funktioniert Leos Code auch bei mir einwandfrei.
-
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
-
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?
-
18
-
Steh ich auf dem Schlauch? Hilft mir diese Info?
wie sollte ich weitermachen? Bin für jeden Vorschlag dankbar
-
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.
-
alles korrekt ...
verrückt
Content aside
- vor 3 JahrenZuletzt aktiv
- 16Antworten
- 777Ansichten