Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Anmeldungen zum Forentreffen 2018 sind auf der Anmeldeseite möglich
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Datamatrix

Moderator: Moderatoren

Antworten
Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 366
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Kontaktdaten:

Datamatrix

Beitrag von Armin » Do, 13. Okt 2016 17:48

Hallo,

ich will mit List und Label einen Datamatrix-Code drucken.

Separators (ISO 15434 & ASC MH 10 Standards)

[)> Start of transmission with
<RS> Record Separator
06 ASC MH 10 Data Identifiers
<GS> Group Separator
<EOT> End Of Transmission

Den String bereite ich so auf:

Code: Alles auswählen

    cHilf := "[)>"+ "~d030"+"06"+"~d029"+;
             "P"  + trim(field->LATENK) + "~d029"+;
             "1T" + trim(field->XXFAUN) + "~d029"+;
             "14D"+ field->XXMHDT + "~d029"+;
             "Q"  + trim(field->XXVPEI) + "~d030"+;
              "~d004"
D.h. für <RS> verwende ich chr(30), für <GS> chr(29) und für <EOT> chr(4)

So erzeuge ich die LL-Variable:
LlDefineVariableExt(hJob, cFeldname, Trim(cHilf), LL_BARCODE_DATAMATRIX, 0 )

Der Code wird mit einer Barcode-App auf dem Handy als Format DATAMATRIX und Typ TEXT angezegit.
Folgendes Ergebnis:
[)> 06 PA2U00095689 1TF160099901 14D20211110 Q20000

Jetzt behauptet der Kunde, dass die Steuerzeichen fehlen.

bzw. sind die Codes richtig?
<RS> entspricht chr(30)
<GS> entspricht chr(29)
<EOT> entspricht chr(4)

Hier wird das etwas erklärt:
http://www.idautomation.com/barcode-faq/iso-iec-15434/

Grüße, Armin

Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 366
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Kontaktdaten:

Re: Datamatrix

Beitrag von Armin » Di, 18. Okt 2016 10:08

Hilfe,

der Kunde hat uns jetzt einen Datamtrix zugesendet, wie er ihn gerne haben will.

Wenn ich den scanne, dann sind da die Steuerzeichen drin und werden folgendermaßen angezeigt:

[)><RS>06<GS>PA2U00095689<GS>1TF160099901<GS>14D20211110<GS>Q20000<RS><EOT>

Wie bringe ich List und Label dazu, diese Steuerzeichen in den Datamatrix einzufügen?

Grüße, Armin

Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 366
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Kontaktdaten:

Re: Datamatrix

Beitrag von Armin » Di, 18. Okt 2016 10:10

Der richtige Datamatrix Barcode im Anhang
Dateianhänge
image002.png
image002.png (7.79 KiB) 3334 mal betrachtet

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13829
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Datamatrix

Beitrag von brandelh » Di, 18. Okt 2016 10:24

Mein Smartphone gibt für den Barcode einen anderen Code zurück, war das nur ein Beispiel oder spinnt der reader bei mir ?
Gruß
Hubert

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13829
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Datamatrix

Beitrag von brandelh » Di, 18. Okt 2016 10:32

Hast du mal versucht statt "~d029" einfach chr(29) etc. zu verwenden ?
Gruß
Hubert

Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 366
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Kontaktdaten:

Re: Datamatrix

Beitrag von Armin » Do, 20. Okt 2016 11:36

Hallo Hubert,

vielen Dank für Deine Antworten!
Hast du mal versucht statt "~d029" einfach chr(29) etc. zu verwenden ?
ja, da kommt das gleiche dabei raus.

Das ist nur ein Beispiel vom Kunde - ich wollte zeigen, dass beim Scannen die Steuerzeichen als z.B. "<RS>" gezeigt werden.
In meinem Beispiel werden an diesen Stellen Leerzeichen gezeigt. Combit hat meinen String jetzt auch mal verwendet und sie sehen die entsprechenden Zeichen nach dem Scannen als Hex-Werte drin. Trotzdem scheint der Datamatrix nicht i.O..

Man sieht auch den Unterschied - der richtige vom Kunde scheint in 4 Bereiche aufgeteilt zu sein.

Grüße, Armin
Dateianhänge
datamatrix_test1.png
von mir aus List und Label
datamatrix_test1.png (6.91 KiB) 3293 mal betrachtet

Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 366
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Kontaktdaten:

Re: Datamatrix

Beitrag von Armin » Mo, 24. Okt 2016 10:06

Hallo zusammen,

jetzt klappt es - dank Combit-Support.

Die Lösung:

Den String an List und Label so uebergeben:
"[)><RS>06<GS>PA2U00095689<GS>1TF160099901<GS>14D20211110<GS>Q20000<RS><EOT>"


D.h. die Steuercodes
<RS> entspricht chr(30)
<GS> entspricht chr(29)
<EOT> entspricht chr(4)

werden nicht als Steuerzeichen (z.B. "~d029") uebergeben (waere laut Doku zu erwarten) sondern als entsprechenden Text "<RS>" usw..
List und Label scheint dann den Text in die Steuerzeichen umzuwandeln... :roll:

Grüße, Armin

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 13829
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Datamatrix

Beitrag von brandelh » Mo, 24. Okt 2016 10:21

Das macht aber auch Sinn, "<...>" wird als Text über alle Schnittstellen sauber übergeben, Steuerzeichen eventuell "gefressen" oder interpretiert.
Einfacher ist es auch :D

PS: manchmal denkt man zu kompliziert ... geht mir auch so :roll:
Gruß
Hubert

Benutzeravatar
Armin
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 366
Registriert: Mo, 26. Sep 2005 12:09
Wohnort: 75331 Engelsbrand
Kontaktdaten:

Re: Datamatrix [ERLEDIGT]

Beitrag von Armin » Mo, 24. Okt 2016 11:13

Hallo Hubert,

vielen Dank für Dein Mitdenken! :D
PS: manchmal denkt man zu kompliziert ... geht mir auch so
ja - kann passieren - die Dokumentation dazu ist aber auch sehr widersprüchlich bis überhaupt nicht vorhanden (List und Label).
Ich wollte es halt gleich richtig machen und nicht rumprobieren...

Gut - klappt ja jetzt,

Grüße, Armin

Antworten