Artikelnummer vergeben
Hallo
Habe eine Frage: Ich habe in meine Lagerverwaltung allen Artikel eine neue eigene Artikelnummer vergeben (mit Hilfe von Leo) die folgend aufgebaut ist. Zuliefere plus nummer. Also Lieferant A fängt mit ein an z.B. 10001 oder 10002 usw. Lieferant 2 20001 oder 20002 usw. Die Lieferanten werden über ein Auswahlfeld gewählt. Jetzt möchte ich bei anlegen von neuen Artikel automatisch neue artikel nummer vergeben unter der berücksichtigung des lieferanten. Als wenn bei Lieferanten 2 das Letzte Artikel die 20456 gewesen war, dann sollte die folgende nummer 20457 haben.
Ich habe keine idee wie man das machen kann. Einfaches hochzählen würde ich hinkriegen, aber mit dem Lieferanten nummern vorne....
Gruß Richard
11 Antworten
-
Hallo
Niemand kann hier helfen?
-
Hallo Ryszard,
1. Wie viele Lieferanten hast du und wie werden die Nummer der Lieferanten vergeben? Bis 9 Lieferanten is noch klar. Wenn die Nummer den Auswahl.IDs entsprechen (bei 2 ist es 2 und format (1,"000"). Was passiert bei Lieferant 11? Sollte die Artikelnummer 110001 sein oder 11001?
2. Ist die neue Artikelnummer ein Textfeld oder ein Zahlenfeld?
Leo
-
Hallo Leo
Maximal werden es 9 Lieferanten sein, aber wenn irgendwann in der Zukunft sollten noch welche dazu kommen, dann sollte die Nummer 10001, oder 11001 lauten.
Die Artikelnummer ist ein Zahlenfeld
Ryszard
-
Hallo Leo
Du bist hier in Forum sehr aktiv.... und hast Du mich wahrscheinlich vergessen :)
Gruss Richard
-
Hallo Ryszard, schaue einmal hier, ich glaube das löst Dein Problem
https://www.youtube.com/watch?v=KCHgK0OkwMI
Wolfgang
-
Hallo Ryszard,
ich ich hoffe, dass die Anzahl der Lieferanten unter 99 bleibt, denn irgendwann hast du kein Platz mehr für die Artikelnummer. Ansonsten sollte die Vergabe der Artikelnummer als Trigger nach Änderung des Feldes Lieferant sein. Ich gehe davon aus dass die ID des Feldes Lieferant auch die Lieferanten-ID ist:
---
let me:=this;
let myChoice:=select Artikel where Lieferant:=me.Lieferant;
Artikelnummer:=if cnt(myChoice)=0 then
number(rpad(text(number(me.Lieferant), 5, "0")) + 1
else
max(myChoice.Artikelnumber)+1
end
---
Leo
-
Hallo Leo
Ich bekomme die Meldung: Updates not allowed in select in Zeile 2, Spalte 73.
Zur besseren Verständnis: Artikeln ist bei mir Lager mit allen Artikeln, Die Lieferanten sind in einen Auswahlfeld (der Lieferanten heist) untergebracht. Jeder Lieferant hat hier eine eingene nummer so wie es in einen Auswahlfeld übrig ist. Zur Zeit gibts 8 Lieferanten, also nummern von 1 bis 8. Das Feld mit Artikelnnummer ist ein Zahlenfeld und heist INDEKS.
Gruß Ryszard
-
let me:=this;
let myChoice:=select Artikel where Lieferant=me.Lieferant;
Artikelnummer:=if cnt(myChoice)=0 then
number(rpad(text(number(me.Lieferant), 5, "0")) + 1
else
max(myChoice.Artikelnumber)+1
end -
Hallo Leo
Vielen Dank für Deine Unterstützung.
Jetzt kommt die Meldung: Die Funktion ist nicht definiert: text(number, number, string) in Zeile 4, Spalte 54
-
let me := this;
let myChoice := (select Artikel where Lieferant = me.Lieferant);
me.(Artikelnummer := if cnt(myChoice) = 1 then
number(rpad(text(number(me.Lieferant)), 5, "0")) + 1
else
max(myChoice.Artikelnummer) + 1
end) -
Hallo Leo
Jetzt funktioniert!
Vielen Dank
Gruss
Content aside
- vor 3 JahrenZuletzt aktiv
- 11Antworten
- 602Ansichten