Hallo Klaus,
das ist ein ganz typischer Fall, den du mit folgender Standard-Taktik gut lösen kannst: Wenn du ein geeignetes Gruppier-/Sortierfeld nicht hast, dann schaffst du dir eines.
Hier benötigen wir also ein Sortierkriterium, das zunächst berücksichtigt, dass die Gewichte absteigend sortiert werden. Daher musst du zuerst die Gewichte bereinigen (Einheit usw. weg) und dann absteigend sortieren.
Um bei gegebenem aufsteigendem (nummerischen) Kriterium absteigend zu sortieren, zieht man einfach diese Zahl von einer (viel) größeren ab, hier etwa von 10.000. Das ergibt dann immer eine vierstellige Zahl.
Anschließend benötigst du die Artikelnummer aufsteigend; diese liegt bereits so vor. Um auch hier die Anzahl der Stellen zu vereinheitlichen, machst du einen String draus und stellst erforderlichenfalls Nullen davor. Hierfür gibt es in LUA eine entsprechende Funktion, s.u.
Im ersten Schritt könntest du also ein Zusatzfeld vom Typ "Erweitert" namens "Sortierkriterium" erstellen, das in den Feldoptionen in der Kategorie "Zusatzfeld" folgenden LUA-Code enthält:
g = FIELD.get('GEWICHT'):content() -- Feldinhalt holen
g = g:gsub("%D", "") -- alle Nicht-Zahlen rauswerfen
g = tonumber(g) -- sicherstellen, dass Zahl
g = 10000 - g -- von 10.000 abziehen
a = FIELD.get('ARTNR'):content() -- Feldinhalt holen
a = string.format("%06d", a) -- sechsstellig machen
value = tostring(g) .. a -- beide Teile zusammenfügen
return value
In diesem Feld steht dann z.B. "9950000011".
Nun kannst du ein weiteres Zusatzfeld vom Typ "Standard" mit folgender Formel erstellen:
GROUPLIST('A:B:C:D', 'Sortierkriterium', ARTNR)
und erhältst das gewünschte Ergebnis.
(Dieser Beitrag wurde von Rudix am 19. Jun 2020, 13:52 geändert)