Zum Inhalt springen
  • 0

Crystal Reports Barcode 128


Frage

Geschrieben

Hey liebe IT-Freunde :),

Ich habe ein Problem mit Crystal Reports bzw eher mit einem Script in der Crystal-Syntax. Ich sollte einen Barcode 128 mit 13 Stellen "Generieren" bzw es so anstellen, dass wenn ich es einscanne, dass mir die 13 Stellige ISBN Nummer auf dem Scanner angezeigt wird. Leider ist es gerade so, dass nur 12 Zeichen angezeigt werden und die letzte Zahl abgeschnitten wird. Hier ist einmal ein Bild von der Syntax. Ich hoffe ihr könnt mir da weiter helfen.

Mfg

Sucuk.PNG

5 Antworten auf diese Frage

Empfohlene Beiträge

  • 0
Geschrieben

Dem Code nach nutzt Du die Methode mit Fonts zur Barcodeerzeugung. Siehe z.B. http://www.idautomation.com/barcode-faq/code-128/

Steht denn alles als Barcode zu druckende (inkl. Checksumme) in Deiner "barcode"-Variablen drin?
Evtl. kann man am Scanner auch die Prüfsumme deaktivieren, etc..

Wenn Du den Code kopierbar mit Beispieldaten (TmpDruck_Buchlaufkarten.ISBN) eingestellt hättest, hätte evtl.jemand das probieren können. Tja..  :)

  • 0
Geschrieben

stringvar barcode := '';
stringvar belegnr := '';
numbervar p0 := 0;
numbervar p1 := 0;
numbervar p2 := 0;
numbervar p3 := 0;
numbervar p4 := 0;
numbervar p5 := 0;
numbervar p6 := 0;
numbervar p7 := 0;

//belegnr := LEFT('000', (13 - LENGTH(totext({TmpDruck_Buchlaufkarten.ISBN}))))+ totext({TmpDruck_Buchlaufkarten.ISBN});
belegnr :=  '0'+{TmpDruck_Buchlaufkarten.ISBN};
p0 := tonumber(MID(belegnr, 1, 2));
p1 := tonumber(MID(belegnr, 3, 2));
p2 := tonumber(MID(belegnr, 5, 2));
p3 := tonumber(MID(belegnr, 7, 2));
p4 := tonumber(MID(belegnr, 9, 2));
p5 := tonumber(MID(belegnr, 11, 2));
p6 := tonumber(MID(belegnr, 13, 2));
p7 := Remainder((105 + (p0*1) + (p1*2) + (p2*3) + (p3*4) + (p4*5) + (p5*6) + (p6*7)), 103);
barcode := 'Í';

if p0 = 0 THEN barcode := barcode + 'Ï'
else if p0 >= 95 THEN barcode := barcode + chr(p0 + 100)
else barcode := barcode + chr(p0 + 32);

if p1 = 0 THEN barcode := barcode + 'Ï'
else if p1 >= 95 THEN barcode := barcode + chr(p1 + 100)
else barcode := barcode + chr(p1 + 32);

if p2 = 0 THEN barcode := barcode + 'Ï'
else if p2 >= 95 THEN barcode := barcode + chr(p2 + 100)
else barcode := barcode + chr(p2 + 32);

if p3 = 0 THEN barcode := barcode + 'Ï'
else if p3 >= 95 THEN barcode := barcode + chr(p3 + 100)
else barcode := barcode + chr(p3 + 32);

if p4 = 0 THEN barcode := barcode + 'Ï'
else if p4 >= 95 THEN barcode := barcode + chr(p4 + 100)
else barcode := barcode + chr(p4 + 32);

if p5 = 0 THEN barcode := barcode + 'Ï'
else if p5 >= 95 THEN barcode := barcode + chr(p5 + 100)
else barcode := barcode + chr(p5 + 32);

if p6 = 0 THEN barcode := barcode + 'Ï'
else if p6 >= 95 THEN barcode := barcode + chr(p6 + 100)
else barcode := barcode + chr(p6 + 32);

if p7 = 0 THEN barcode := barcode + 'Ï'
else if p7 >= 95 THEN barcode := barcode + chr(p7 + 100)
else barcode := barcode + chr(p7 + 32);

barcode := barcode + 'Î';

barcode;

 

Das wäre der komplette Code.

Wir haben an sich schon alles versucht was wir konnten, sind auch so weit gekommen, dass die Komplette ISBN angezeigt wird, nur mit einer führender 0 am Anfang, die wir dort einfach nicht weg kriegen.

  • 0
Geschrieben

Anscheinend codiert die Funktion in Code128C - zu sehen z.B. an der "105" in

p7 := Remainder((105...

Bei Code C werden Zahlen immer paarweise kodiert: Z.B. "00", "90", "66", etc. - das bedeutet bei ungerader Stellenzahl entweder vorn oder hinten aufgefüllt werden muss.

Andere Möglichkeiten:

- Bei Code128 vor der 13. Stelle einen Wechsel auf eine andere Tabelle machen - wie das geht steht z.B. in dem idautomation-Link. Beachte, dass auch die Prüfsummenberechnung angepasst werden muss.

- Bei Code128 gleich eine andere Tabelle (A oder B ) nutzen - der erzeugte Code muss nicht unbedingt länger werden)

- Anderen Barcode verwenden (EAN13?)

Hth & Guten Rutsch!

Ripper

  • 0
Geschrieben

Hey, Dankeschön für die guten und schnellen Antworten.

Das Problem hat sich soweit geklärt. wir haben bei unseren MDE-Geräten einfach die Prüfsummen deaktiviert... Ja, manchmal denkt man einfach viel zu kompliziert :lol: 

Mfg :)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...