Also wir haben auch Intermec-Drucker (501) im Einsatz und steigen nach und nach auf die Zebradrucker um.

Wir verwenden den LP2844-Z (das Z steht dafür, dass der Drucker ZPL kann).

Mein Design sieht so aus:

1.) Ich zeichne meine Etiketten mit dem Demoprogramm Bar-One (WYSIWYG-Editor) und lege die Formulare via Windowsfreigabe im IFS der AS/400 ab.

[img=http://img90.imageshack.us/img90/6871/baronexo2.th.jpg]

2.) Das Druckprogramm holt das Forumarfile(s) und druckt es aus bzw. ergänzt noch die Variablen (Suchen ersetzen).
Ich habe nur ein Druckfile mit einer langen Zeile. Jede Zeile aus den Files wird damit ausgedruckt, beim variablen Teil führe ich noch ein "Suchen und Ersetzen" aus.

Alternativ könnte man die ganze Durckerdaten auch in DDS einbetten und die Variablen als Druckervariablen definieren. Denkbar wäre hier auch ein kleines Hilfsprogramm, welches die Zebradateien in ein DDS-File umwandelt.

Andere Leute hier im Forum erlernen die Drucksprache und bauen daraus ein DDS-File. Nicht mein Ding....wofür gibt es denGUI-Designer..

Ich habe für den Ausdruck ein Druckmodul erstellt, welchem ich Formular (=IFS-Dateiname), OutQ und eine Tabelle der Variablen (Variablenname, Wert) mitgebe.

Bei mir (4GL Sprache sieht das dann so aus):
Code:
EXECUTE SUBROUTINE(ZPL_INIT)
* AuftragsNr + Lieferschein
CHANGE FIELD(#W_FELD) TO('''AAAAAA/LL ''')
SUBSTRING FIELD(#L1_AUNR) INTO_FIELD(#W_FELD 1 6)
SUBSTRING FIELD(#L1_LFFF) INTO_FIELD(#W_FELD 8 2)
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('AUFTRLFSNR' #W_FELD)
* EAN-Code 14stellig
SUBSTRING FIELD(#L1_EANCD) INTO_FIELD(#W_FELD)
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('EAN' #W_FELD)
* Empfängeradresse
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('EMPFNAME' #L2_NAM)
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('EMPFERG' #L2_ERG)
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('EMPFSTR' #L2_STR)
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('EMPFADR' #L2_ORT)
* Kolli + Gewicht
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('GEWICHT' #L1_KLGW)
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('KOLLI' #L1_KLBZ)
* Kundendaten: Kurzbezeichnung, Referenz, Lieferdatum
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('KUNREF' #L1_BENR)
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('LIEFDAT' #L1_LFDA)
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('KURZBEZ' #L1_KUBZ)
* Versandart + Sammelplatz
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('VABEZ' #L1_VABZ)
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('SAMPL' #L1_SAPL)
* Infozeile
USE BUILTIN(TCONCAT) WITH_ARGS(#L4_DRDA '/' #JOBNAME '/' #OUTQ) TO_GET(#W_FELD)
EXECUTE SUBROUTINE(ZPL_ADDVAR) WITH_PARMS('INFOZEILE' #W_FELD)
* Ausdruck
USE BUILTIN(PRINT_ZPL) WITH_ARGS(LIEFETIZ #OUTQ LIFETI AFT24DR5Z) TO_GET(#IO$STS)
Nachteil gegenüber der DDS-Feldern: Ich muss mich um die Konvertierung der numerischen Werte nach Alphanumerisch selbst kümmen (das musste ich beim Intermec aber meistens auch).

/Robert