L&L Designer - GS1Text funktioniert nicht richtig

Hallo zusammen,

Wir versuchen aktuell die GS1Text Funktion zu nutzen, dies wirft aber immer einen “Error”. Die Daten sind eigentlich korrekt. Müssen die einzelnen Strings hier eine konkrete Länge haben? Die Doku dazu im Handbuch ist da leider recht kurz.

Hier das gewünschte Ergebnis mit Dummy-Daten:
(01)12345678912345
(17)123456
(10)12AB34

Übersehe ich etwas?

Danke im Voraus für die Hilfe.
Viele Grüße

Hallo Jonas, herzlich willkommen hier im Forum :slight_smile:!

Die GS1Text$-Funktion übernimmt an sich “nur” das korrekte Klammern der Application Identifier. Das klappt bei mir mit den genannten Daten auch:

image

Hallo Herr Bartlau,

Danke für die schnelle Antwort. D.h. die chr-Funktion ist gar nicht notwendig, oder? Hätten Sie eventuell noch ein Beispiel mit Dummy-Variablen für diesen Case?

Viele Grüße!

Die Chr$-Funktion wird für AIs mit variabler Länge benötigt und schließt dann den Inhalt ab. In der Spezifikation finden Sie das als FNC1.

Ein einfaches Beispiel wäre die Batch-Size (AI 10). Das klappt in Ihrem Beispiel oben auch ohne FNC1, weil dieses Steuerzeichen beim letzten AI weggelassen werden soll. Wenn der AI aber weiter vorne verwendet wird, wird auch das Trennzeichen benötigt. Einfaches Beispiel:

GS1Text$('10123456' + Chr$(254) + '3102123456') liefert (10)123456(3102)123456

Ohne das FNC1-Zeichen werden auch die weiteren Zeichen der Batch-Number zugeschlagen, daher liefert

GS1Text$('10123456' + '3102123456') dann (10)1234563102123456

Für diese Fälle verstanden. Hier ein konkreter Fall:

GS1Text$(“01” + DB.GTINVerkaufseinheit + “17” + Date$(DB.Verfallsdatum, “%yy%02m%02d”) + “10” + str$(DB.BelID))

Wichtig zu wissen, die DB-Werte / Variablen enthalten keine AI, d.h. diese muss man dazufügen. Diese Formel wirft mir aber wieder einen Error (GTIN, MHD, LOT - die AI sind korrekt nach GS1 Spez.).

Was mache ich falsch ? :smiley:

Viele Grüße!

Ich habe das mit hartcodierten Werten ausprobiert:

GS1Text$("01" + "12345678901234" + "17" + Date$(Now(), "%yy%02m%02d") + "10" + "Ab1234")

Das funktioniert bei mir:

image

Wie viele Stellen hat denn DB.GTINVerkaufseinheit? Es sollten 14 sein.

Muss die GTIN in der Formel in L&L 14 Stellen haben? In diesem Fall haben wir nur 13 Stellen (oder muss man dann eine führende “0” mitgeben):

Mit einer manuell hinzugefügten “0” klappt jetzt alles :). Jetzt muss nur noch zwei Zeilenumbrüche in die Funktion rein, sodass die drei Werte untereinander stehen. Geht das?

Vergleichsweise einfach so:

ReplaceStr$(GS1Text$("01" + "12345678901234" + "17" + Date$(Now(), "%yy%02m%02d") + "10" + "Ab1234"), "(", chr$(13)+"(")

Dann ist ganz zu Beginn noch ein Umbruch drin (weil auf die erste Klammer durch Umbruch + Klammer ersetzt wird), das lässt sich aber durch eine angepasste Positionierung leicht umgehen. Ganz korrekt wird es dann so:

LTrim$(ReplaceStr$(GS1Text$("01" + "12345678901234" + "17" + Date$(Now(), "%yy%02m%02d") + "10" + "Ab1234"), "(", chr$(13)+"("), chr$(13))

1 Like

Vielen Dank!! So passt nun alles.

1 Like