Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Rave Report Barcode 128 (https://www.delphipraxis.net/142006-rave-report-barcode-128-a.html)

Stephan 20. Okt 2009 16:23


Rave Report Barcode 128
 
Hallo,

ich nutze die Barcode 128 Komponente, welche direkt im Rave Designer enthalten ist. Bei der Komponente gibt es eine Eigenschaft "optimize", welche leider in der Rave-Hilfe nicht weiter erläutert wird. Ist die Eigenschaft auf "true", so scheint die Codierung des Barcodes automatisch gewählt zu werden. Schalte ich optimize jedoch auf "false", kann ich über entsprechende ASCII-Steuerzeichen die Kodierung z.B. innerhalb des Barcodes ändern. Leider wird der Barcode bei "false" ca. 1/4 länger, sprich die Anzahl der Striche erhöht sich drastisch.

Hat jemand eine Ahnung, was die Eigenschaft "optimize" exakt anstellt? Neben der Kodierung scheint irgendeine Optimierung vorgenommen zu werden, die ich gerne manuell nachvollziehen würde. Das Problem ist nämlich, dass optimize=true die falsche Kodierung wählt und und sämtliche ASCII-Steuerzeichen und die CodePage Eigenschaft vollständig ignoriert.

Kann jemand Licht in's Dunkel bringen?

shmia 20. Okt 2009 16:46

Re: Rave Report Barcode 128
 
Beim Code 128 gibt es 3 Zeichensätze A,B und C.
Der Zeichensatz C kann zwei Ziffern in einem Symbol kodieren.
Das heisst ein Barcode mit dem Inhalt "12345678" braucht im Zeichensatz C nur halb so viel Platz wie in Zeichensatz A oder B.
Ich habe etwas vereinfacht, weil ja Start, Prüf- und Endesymbol noch dazukommen.
Optimierung bedeutet nun herauszufinden, wie man durch geschicktes Umschalten der Zeichensätze einen möglichst kleinen Barcode bekommt.
Beispiel:
Daten = "ABC12345". Wir beginnen mit Zeichensatz A und codieren "ABC".
Wenn man die folgenden "12345" in Zeichensatz A kodiert braucht man 5 Symbole.
Man könnte auch nach C umschalten, dann "1234" in 2 Symbolen kodieren, dann zurück auf A und die "5" kodieren.
Macht zusammen auch 5 Symbole; lohnt also leider nicht.
Wären die Daten "ABC1234" gewesen, dann hätte sich die Umschaltung auf C gelohnt.

Stephan 20. Okt 2009 17:05

Re: Rave Report Barcode 128
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo shmia,

danke für deinen Beitrag. Es ist so, dass die Kodierung fest vorgegeben sein muss, dabei werden die ersten 12 Zeichen mit B, die restlichen mit Code C kodiert. Um das zu verdeutlichen habe ich dir eine PDF-Datei angehängt sowohl die passende RAV-Datei (gezippt). Den obersten Barcode möchte ich mit dem RaveDesigner nachbauen, leider gelingt mir dies nicht. Hast du eine Idee?

Stephan 21. Okt 2009 16:03

Re: Rave Report Barcode 128
 
Hallo,

ich habe den Barcode nun von Hand dekodiert und gesehen, dass der erste Barcode nach %0 bereits auf Codepage C wechselt. Damit ist die Dokumentation die ich benutze um die Barcodes zu erzeugen definitiv falsch. Schon toll, da kann ich natürlich ewig suchen, wenn sich Firma XYZ nicht mal an die eigene Dokumentation hält :(

Trotzdem danke :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz