[Gelöst] Barcode mit leerzeichen

23. Januar 2007 14:47

Hi,
ich brauche mal euer Tips.

Ich wollte Daten als Barcode (Font Code-39-20) auf Bericht ausdrucken.

Für Single Daten habe ich kein Problem.
Beispiel: Lieferungsnr ==> SourceExpr: '*'+"Sales Shipment Header"."No."+'*'

Jetzt muss ich nämlich z.B. Lieferungsnr + Leerzeichen + Ext.-Belegnr.
Wegen des Leerzeichens wird mein Barcode nicht mehr lesbar.

Ich habe verschiedene Wege versucht z.B.
Leerzeichen als Char definiert: 44, strsubstno etc. aber miserfolg.

Habt ihr schon mal das gleiche Problem gelöst?

Vielen Dank im voraus.
Zuletzt geändert von navsyst am 6. Dezember 2007 13:58, insgesamt 1-mal geändert.

24. Januar 2007 15:17

Hallo,
zu Problem kann ich dir nicht direkt etwas schreiben.
Ich hatte ein ähnliches Problem mit dem Bindestrich,
evtl. kannst du das Problem lösen, indem du statt eines Leerzeichens ein anderes Zeichen druckst
(z.B. ein $ oder %), beim einlesen des Barcodes einfach das Zeichen abfangen.

Gruß Mikka

24. Januar 2007 15:25

Das Problem ist dass der Barcode nicht von uns eingelesen wird sondern vom Kunde.
Wir müssen sämtliche Barcode auf Lieferschein einfügen.

25. Januar 2007 09:53

Ich würde dem Kunden davon abraten, da im Feld Ext.Beleg.Nr. auch Zeichen die der Barcode nicht unterstützt enthalten sein könnten.
(Mal ganz davon abgesehen, was will der Kunde mit einem solchen Barcode?!)

Falls der Kunde doch ihn so haben will, können die beiden Felder nicht separat gedruckt werden?
Allternativ wurde mir noch einfallen, das beide Werte miteinander "Verheiratet" werden. Hierzu müsste allerdings eine Referenztabelle (oder ein Referenzfeld) vorhanden sein, um die Werte wieder aufzulösen.

Da ich es nicht Prüfen kann, hast du nachgeschaut, ob alle Zeichen die bei dir gerduckt werden vom Strichcode unterstützt werden?
(Ich hatte wie bereits geschrieben mit dem Bindestrich '-' Probleme, der auf dem Lieferschein gedruckt wurde z.B. L00-0001)
Gruß Mikka

6. Dezember 2007 13:57

Habe ich vergessen dieses Thema zu aktualisieren.
Ich habe das Problem mit Barcodetyp Code128bWin gelöst.
Mit folgende Aufruf:

EncodeBarcode128(BarcodeText) //BarcodeText: Texte zu konvertieren

Code:
Parameter: pText / Text / 250

Return Value: RetVal / Text / 250

Variables:
Checksum / Integer      
i / Integer      
currentchar / Char      
StartChar / Char      
StopChar / Char      
ChecksumChar / Char      


StartChar:='š';
StopChar:='œ';
Checksum:=104;

FOR i:=1 TO STRLEN(pText) DO BEGIN
  currentchar:=pText[i];
  Checksum := Checksum +(i*(currentchar-32));
END;
ChecksumChar:= Checksum MOD 103;
ChecksumChar:= ChecksumChar+32;

// convert SPACE to ALT+0128
pText:=CONVERTSTR(pText,' ','€');

RetVal:=STRSUBSTNO('%1%2%3%4',
  StartChar,pText,ChecksumChar,StopChar);
EXIT(RetVal);


Habe die wahrscheinlich aus Mibuso gefunden.