-
Barcode EAN128
Hallo Forum,
auf ein Formular soll mit einem IPDS-Drucker ein EAN128-
Barcode gedruckt werden. Der gleiche Barcode wird auf einem
speziellen Barcodedrucker auf Palettenetiketten gedruckt.
Vor die Zeichenfolge (Datenbezeichner und Nutzzeichen) habe ich
das FNC1 (8F), danach das SPZ gesetzt und in der Printerfile
mit BARCODE(CODE128) ausgegeben.
Das SPZ habe ich aus FNC1 und Zeichenfolge errechnet.
Der Barcode stimmt aber im hinteren Bereich, unmittelbar vor dem
Stopzeichen, nicht mit dem Barcode der Etiketten überein. Die
Etiketten werden richtig eingelesen, der Barcode auf dem Formular nicht.
Kann jemand weiterhelfen?
Im Voraus schon mal Danke.
Herbert
-
Hi Joe
Ich hatte mal ein ähnliches Problem. Bei mir hing es mit dem Fehlen des Parameters CHECK-DIGIT im Printerfile-Schlüsselwort BARCODE zusammen.
Versuchs doch einfach mal mit der Angabe (Wert 02) von diesem Parameter:
BARCODE(CODE128 ......... X '02')
(siehe DDS-Reference unter BARCODE)
Gruss
Daniel
-
Danke Daniel,
bin bis 18.8. im Urlaub. Werde es dann probieren und
Feedback geben.
Gruß Herbert
-
Prüfziffer X'02'
Hallo Daniel,
leider ist das Problem mit der Prüfziffer X'02' nicht gelöst.
Der Barcode hat vor dem Stopcode mehr Zeichen als der
Code aus dem Etikettendrucker (der ist richtig).
Bitte weiter um Hilfe.
Gruß
Herbert
-
Schau Dir mal folgenden Link an:
http://www.strichcodeservice.at/zeichensatz_code128.htm
Die Berechnung des Prüfzeichens erfolgt mit dem ASCII-Wert und nicht mit dem EBCDIC-Wert. Du musst also erst eine Übersetzung in ASCII durchführen, die PZ berechnen und das Ergebnis wieder in EBCDIC. Dies gilt auch für das FNC.
Für die Codewandlung kannst du QDCXLATE verwenden, du musst nur noch die richtige Tabelle wählen (WRKTBL *ALL, und dann nach Q273337xxx suchen, wobei xxx für den ASCII-Code steht).
PS:
Vielleicht berechnet ja die AS/400 die Prüfziffer automatisch, dann versuche es mal mit der Angabe X'00'/X'01' statt X'02'.
-
Ich habe nun selbst die Anforderung bekommen, EAN128 zu drucken. Mit folgender Einstellung funktioniert es einwandfrei:
DDS: PTBARC 8 BARCODE(CODE128 4 *NOHRI X'02')
RPG: X'8F' CAT BCINFO PTBARC P
Ich berechne KEINE Prüfziffer, sondern dies macht das System selber.
-
Hallo Forum,
dank Eurer Unterstützung, insbesondere von Fuerchau, kann ich die Lösung der Aufgabe "EAN128" hier aufzeigen.
Es handelt sich bei den Nutzdaten um die NVE (Nummer der Versandeinheit). Die Grunddaten stehen in meinem Fall in einer Palettendatei (wg. der Größe) und werden von Palette zu Palette um eine lfd.Nr. ergänzt. Diese Daten werden mit einer Prüziffer (Modulo 10 mit der Gewichtung 31313131..... .) ergänzt und ergeben die komplette NVE.
Vor die NVE wird das Kennzeichen FNC1(x'8F') und der Datenbezeichner (DB=00) gestellt.
Kompletter String:
FNC1 DB NVE
Die Ausgabe in der Printerfile wie vorstehend von Fuerchau beschrieben.
Danke an alle Helfer
Herbert
-
NVE mit AS400 erstellen
Hallo zusammen!
ich bin im Moment auch gerade dabei einen NVE Code über die AS400 zu basteln. Wäre es vielleicht möglich mir den
RPG-Code sowie den DDS-COde zukommen zu lassen?
Besten Dank im Voraus
Hans Zuther
-
Hallo Herr Fürchau,
vielen Dank für die Antwort. Leider komme ich jetzt erst dazu darauf zu antworten.
Ich habe mir den Artikel angeschaut. Können Sie mir bei den folgenden Feldern weiterhelfen?
BCINFO (wie groß ist das Feld und mit was wird des befüllt)
PTBARC (das gleiche)
mfg
Hans Zuther
-
PTBARC ist das DDS-Feld in der PRTF dass den Barcodeinhalt darstellt.
BCINFO ist die NVE-Nummer, die gedruckt werden soll.
Da ich das gerade für einen anderen Kunden auch drucke ergibt sich halt folgender Aufbau zum Drucken:
Die NVE-Nummer ist ein 18-Stelliges numerisches Feld, wobei die 18. Stelle die Prüfziffer Modulo 10 ist.
'00' ist die EAN128-Info für NVE (siehe Wikipedia zum Thema EAN128).
PTBARC = X'8F' + '00' + %editc(NVENR:'X')
Damit ergibts sich für PTBARC ein 21-stelliges Zeichenfeld.
Ich hoffe, die Modulo 10-Berechnung hast du gelöst.
-
Hallo Herr Fürchau,
vielen Dank für die prompte Nachricht. Leider steh ich vollkommen auf dem Schlauch. Könnten Sie mir eventuell einen Auszug der RPG-Anweisung sowie die DDS-Bestimmung geben?
Irgendwo habe ich gelesen dass die AS400 die Prüfsumme selber errechnet. Stimmt das?
Besten Dank für die Bemühungen
mfg
Hans Zuther
-
Die automatisch Prüfsumme beinhaltet nur die Barcode-Prüfsumme (Modulo 103, Siehe Wikipedia), was durch die Angabe X'02' in der DDS erfolgt.
Die NVE-Prüfsumme ist Bestandteil der NVE-Nummer selber und wird nicht automatisch berechnet.
Der Rest steht doch oben bereits:
DDS:
PTBARC 21 20BARCODE(CODE128 4 *NOHRI X'02')
RPG:
D NVENR 18p 0
c/free
PTBARC = X'8F' + '00' + %editc(NVENR:'X');
/end-free
Similar Threads
-
By Stoeberl in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 13-11-06, 07:31
-
By TARASIK in forum NEWSboard Drucker
Antworten: 0
Letzter Beitrag: 27-07-06, 15:45
-
By ExAzubi in forum NEWSboard Drucker
Antworten: 4
Letzter Beitrag: 14-07-06, 08:27
-
By Jump4738 in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 13-07-06, 11:01
-
By Joe in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 26-04-04, 13:34
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks