Jump to content

Frage

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

5 Antworten auf diese Frage

Empfohlene Beiträge

  • 0

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..  :)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
  • 0

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
  • 0

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
  • 0

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 :)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Gast
Du kommentierst als Gast. Wenn du bereits einen Account hast kannst du dich hier anmelden.
Diese Frage beantworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoticons maximum are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.


×