[GastForen Programme Print/Bildbearbeitung Adobe InDesign

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

easyCatalog Grouplist-Sortierung anhand anderem Feldinhalt

Rudix
Beiträge gesamt: 51

19. Jun 2020, 13:49
Bewertung:

gelesen: 12530

Beitrag als Lesezeichen
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)
Änderungsverlauf:
Beitrag geändert von Rudix (User) am 19. Jun 2020, 13:50
Beitrag geändert von Rudix (User) am 19. Jun 2020, 13:51
Beitrag geändert von Rudix (User) am 19. Jun 2020, 13:52