Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Inhaltsübersicht

...

In der Quelldatei DIRWEB/QRPGLESRC finden Sie die Quellen für drei verschiedene Musterprogramme.

Programm ZPLLOADIM - Ein Etikett mit Barcode

Das Programm ZPLLOADIM lädt ein im Flashspeicher des Druckers hinterlegtes Image mit Logo und erzeugt darin einen bei der DHL üblichen Barcode. Die Datei ZPLLoadIm.zpl wird im IFS gespeichert. Von dort kann sie an den Zebradrucker gesandt werden. Eine Direktausgabe über Outq finden Sie im nächsten Musterprogramm.


Code Block
languagetext
titleMusterprogramm ZPLLOADIM - Ein Etikett mit Barcode erstellen
collapsetrue
//**********************************************************************
// Program :?ZPLLOADIM
// Descriptions :?ZPL Test an image
// Programmer :?Toolmaker
// Creation Date :?30.01.2015
//**********************************************************************
// H E A D E R - S P E C I F I C A T I O N S
//**********************************************************************
H/COPY Qcpylesrc,H_SPECSPDF
//**********************************************************************
//F I L E S P E C I F I C A T I O N S
//**********************************************************************
// P R O T O T Y P I N G / C O P Y M E M B E R
//**********************************************************************
D/Include qprolesrc,zplsrvpgm
//**********************************************************************
// D E F I N I T I O N G L O B A L V A R I A B L E S
//**********************************************************************
d count s 10i 0
d rtn s 10i 0
//***********************************************************************
// M A I N P R O G R A M
//***********************************************************************
*INLR = *On;
ZPL_CreateLabel(count:'(*Labelname=/home/gsc/ZPLloadim.zpl)');

If Count=*zero;
  Return;
Endif;

ZPL_Image(count:'(*name =tmsimage) +
                 (*memory =E)');

ZPL_BarCode(count:'(*bcdtype =IDENT) +
                   (*bcdvalue =26890604526) +
                   (*posx =50) +
                   (*height =250) +
                   (width =3) +
                   (*print =Y) +
                   (*posy =300)');

ZPL_CloseLabel(count);

rtn=dw_system('STMFTOPRTF OBJ(''/home/gsc/ZPLloadim.zpl'') +
                          DELETE(*NO) OUTQ(ZEBRANEU)');

Return;

Das Etikett sieht dann so aus:


Image RemovedImage Added

Programm ZPLPOST270 - Miniaturetikett um 270° gedreht

Das Programm ZPLPost270 erzeugt die um 270° gedrehte Miniaturdarstellung eines Postetiketts. Die Ausgabe der Datei ZPLPost.zpl auf den Drucker erfolgt über die OUTQ Zebraneu.


Code Block
titleMusterprogramm ZPLPOST270 - Miniaturdarstellung eines Postetiketts, 270° gedreht
collapsetrue
//**********************************************************************
// Program :?ZPLPost270
// Descriptions :?Test graphic and ident barcode
// Programmer :?Toolmaker
// Creation Date :?26.02.2015
//**********************************************************************
// H E A D E R - S P E C I F I C A T I O N S
//**********************************************************************
H/COPY Qcpylesrc,H_SPECSPDF
//**********************************************************************
// F I L E S P E C I F I C A T I O N S
//**********************************************************************
// P R O T O T Y P I N G / C O P Y M E M B E R
//**********************************************************************
D/Include qprolesrc,zplsrvpgm
//**********************************************************************
// D E F I N I T I O N G L O B A L V A R I A B L E S
//**********************************************************************
d count s 10i 0
d rtn s 10i 0
//**********************************************************************
// M A I N P R O G R A M
//**********************************************************************
*INLR = *On;

ZPL_CreateLabel(count:'(*Labelname=/home/gsc/ZPLloadim.zpl)');

If Count = *zeros;
  Return;
EndIf;

ZPL_graphic(count:'(*name =tms_270) +
(*posx =01) +
(*posy =200)+
(*memory =E)');

ZPL_TextLine(count:'(*text=Westendstrasse 34 86916 Kaufering) +
                    (*posx =85) +
                    (*posy =180) +
                    (*font =D) +
                    (*orientation=B) +
                    (*height =20) +
                    (*width =10)');

ZPL_BarCode(count:'(*bcdtype =IDENT) +
                   (*bcdvalue =8691610903400) +
                   (*orientation =B) +
                   (*posx =110) +
                   (*height =120) +
                   (*width =3) +
                   (*print =Y) +
                   (*posy =180)');

ZPL_TextLine(count:'(*text =Postpaket) +
                    (*posx =100) +
                    (*posy =30) +
                    (*font =D) +
                    (*orientation=B) +
                    (*height =28) +
                    (*width =12)');

ZPL_TextLine(count:'(*text =4.6 KG) +
                    (*posx =130) +
                    (*posy =40) +
                    (*font =D) +
                    (*orientation=B) +
                    (*height =28) +
                    (*width =12)');

ZPL_TextLine(count:'(*text =26-02-2015) +
                    (*posx =160) +
                    (*posy =20) +
                    (*font =D) +
                    (*orientation=B) +
                    (*height =28) +
                    (*width =12)');

ZPL_TextLine(count:'(*text=LS-Nr. 11823) +
                    (*posx =190) +
                    (*posy =10) +
                    (*font =D) +
                    (*orientation=B) +
                    (*height =28) +
                    (*width =12)');

ZPL_TextLine(count:'(*text=Mustermann GmbH) +
                    (*posx =300) +
                    (*posy =400) +
                    (*font =D) +
                    (*orientation=B) +
                    (*height =28) +
                    (*width =12)');

ZPL_TextLine(count:'(*text=Industriestrasse 12) +
                    (*posx =340) +
                    (*posy =350) +
                    (*font =D) +
                    (*orientation=B) +
                    (*height =28) +
                    (*width =12)');

ZPL_TextLine(count:'(*text=86316 Friedberg) +
                    (*posx =380) +
                    (*posy =400) +
                    (*font =D) +
                    (*orientation=B) +
                    (*height =28) +
                    (*width =12)');

ZPL_BarCode(count:'(*bcdtype=IDENT) +
                   (*bcdvalue =26890604526) +
                   (*posx =430) +
                   (*orientation=B) +
                   (*height =150) +
                   (*width =3) +
                   (*print =Y) +
                   (*posy =220)');

ZPL_CloseLabel(count);

rtn=dw_system('STMFTOPRTF OBJ(''/home/gsc/ZPLloadim.zpl'') +
                          DELETE(*NO) OUTQ(ZEBRANEU)');

Return;

Das Etikett sieht dann so aus:






Anchor
_Toc482032301
_Toc482032301
Programm ZPLGS1128 - ein GS1-128 Barcode

Das Programm ZPLGS1128 erzeugt einen GS1-128 Barcode, der auch von der DHL verwendet wird. Damit keine Überschneidungen durch gleiche Dateinamen entstehen, wird der Dateiname mit einer Laufnummer gekoppelt. Diese wird aus der DTAARA DIRWEB/ZPLNEXTNO geholt. Die Quelle zur Erstellung dieser UDF ist in DIRWEB/QSQDSRC zu finden.


Code Block
languagetext
titleMusterprogramm ZPLGS1128 - Einen GS1-128 Barcode erstellen
collapsetrue
//*************************************************************************
// Program :?ZPLgs11288
// Descriptions :?Test GS1 128 mit eindeutiger Druckausgabe
// damit es im IFS keine Überschreibung geben kann.
// Programmer :?Toolmaker
// Creation Date :?23.02.2015
//*************************************************************************
// H E A D E R - S P E C I F I C A T I O N S
//*************************************************************************
H/COPY Qcpylesrc,H_SPECSPDF

//*************************************************************************
// F I L E S P E C I F I C A T I O N S
//*************************************************************************
// P R O T O T Y P I N G / C O P Y M E M B E R
//*************************************************************************
D/Include qprolesrc,zplsrvpgm
D/Include QCPYLESRC,D_Specs
D/Include QPROLESRC,DWSndPMsg

//*************************************************************************
// D E F I N I T I O N G L O B A L V A R I A B L E S
//*************************************************************************
d count s 10i 0
d rtn s 10i 0
d next s 10i 0
d FileName s 12A

//*************************************************************************
// S Q L O P T I O N S
//*************************************************************************
EXEC SQL Set Option Commit = *None, DatFmt = *ISO,
CLOSQLCSR = *ENDACTGRP, Naming = *SYS;

//*************************************************************************
// M A I N P R O G R A M
//*************************************************************************
*INLR = *ON;

Monitor;
  Exec SQL Set :Next = Next Value For ZPLNEXTNO;
  FileName='ZPL'+%trim(%char(Next))+'.txt';

  ZPL_CreateLabel(count:'(*Labelname=/home/gsc/'+%Trim(filename)+')');
  If Count = *ZeroS;
    Return;
  EndIf;

  ZPL_TextLine(count:'(*text =Barcode Test) +
                      (*posx =50) +
                      (*posy =50) +
                      (*font =D) +
                      (*orientation=N) +
                      (*height =36) +
                      (*width =20)');

  ZPL_TextLine(count:'(*text =GS1 128) +
                      (*posx =50) +
                      (*posy =90) +
                      (*font =D) +
                      (*orientation=N) +
                      (*height =36) +
                      (*width =20)');

  ZPL_BarCode(count:'(*bcdtype =GS1128) +
                     (*bcdvalue =<01>95012345678903<3103>000123) +
                     (*posx =50) +
                     (*height =150) +
                     (*print =Y) +
                     (*UCC =Y) +
                     (*posy =200)');

  ZPL_CloseLabel(count:' ');

  rtn=dw_system('STMFTOPRTF OBJ(''/home/gsc/'+%trim(filename)+''') +
                            DELETE(*NO) OUTQ(ZEBRANEU)');

On-Error;
  DW_SndEscMsg(PGMSDS.MsgTxt);
EndMon;

Return;

Das Etikett sieht so aus:

ZPL2OF5INT - Einen 5 of 5 Interleaved Barcode erstellen


Code Block
languagetext
titleMusterprogramm ZPL2OF5INT - Einen 2 of 5 Interleaved Barcode erstellen
collapsetrue
    ‚ **********************************************************************************************
      * Program       :ˆZPL2OF5INT
      * Descriptions  :ˆTest Barcode 2OF5INT mit Prüfziffer
      *
      * Programmer    :ˆToolmaker
      * Creation Date :ˆ06.04.2017 HW
    ‚ **********************************************************************************************
    ˆ * H E A D E R - S P E C I F I C A T I O N S
    ‚ **********************************************************************************************
     H/COPY Qcpylesrc,H_SPECSPDF
    ‚ **********************************************************************************************
    ˆ * F I L E   S P E C I F I C A T I O N S
    ‚ **********************************************************************************************
    ‚ **********************************************************************************************
    š *  P R O T O T Y P I N G  /  C O P Y   M E M B E R
    ‚ **********************************************************************************************
     D/Include qprolesrc,zplsrvpgm
     d/Include QCPYLESRC,D_Specs
     D/Include QPROLESRC,DWSndPMsg
    ‚ *
    ‚ **********************************************************************************************
    ˆ * D E F I N I T I O N   G L O B A L   V A R I A B L E S
    ‚ **********************************************************************************************
     d count           s             10i 0
     d rtn             s             10i 0
     d next            s             10i 0
     d FileName        s             12
     d BCDV            s             12a   inz('040531985')
     d Text1           s             50a   inz('*Test* Barcode (HW) äöüßÄÖÜ')
     d Text2           s             10a

    ‚ //*********************************************************************************************
    ˆ // O P T I O N E N   f ü r   S Q L
    ‚ //*********************************************************************************************
     C/EXEC SQL
     C+ Set Option  Commit = *None, DatFmt = *ISO, CLOSQLCSR = *ENDACTGRP,
     C+             Naming = *Sys
     C/End-Exec
    ‚ //*********************************************************************************************
    ‚ **********************************************************************************************
    ˆ * M A I N   P R O G R A M
    ‚ **********************************************************************************************
    ‚ /Free

        Monitor;
         Exec SQL  Set :Next  = Next Value For ZPLNEXTNO;
         FileName='ZPL'+%trim(%char(Next))+'.txt';
          ZPL_CreateLabel(count:'(*Labelname=/home/gsc/'+filename+') +
                                  (*codepage =1250) +
                                  (*zplcmd   =^CI31)');
          If Count=*zero;
           exsr Quit;
          Endif;
          ZPL_TextLine(count:'(*text='''+%trim(text1)+''') +
                                  (*posx     =50) +
                                  (*posy     =50) +
                                  (*font     =D) +
                                  (*orientation=N) +
                                  (*height   =36) +
                                  (*width    =20)');
          ZPL_TextLine(count:'(*text='+text2+') +
                                  (*posx     =50) +
                                  (*posy     =90) +
                                  (*font     =ARI000) +
                                  (*orientation=N) +
                                  (*height   =36) +
                                  (*width    =20)');
          ZPL_BarCode(count:'(*bcdtype=2OF5INT) +
                                  (*bcdvalue ='+BCDV+') +
                                  (*posx     =50) +
                                  (*posy     =200) +
                                  (*print    =Y) +
                                  (*printab  =N) +
                                  (*mod10    =Y) +
                                  (*orientation =N) +
                                  (*height   =150)');
          ZPL_CloseLabel(count:' ');
       // rtn=dw_system('STMFTOPRTF OBJ(''/home/gsc/'+%trim(filename)+''') +
       //               DELETE(*NO) OUTQ(ZEBRANEU)');
        On-Error;
           DW_SndEscMsg(PGMSDS.MsgTxt);                                        //Send Escape Message
        EndMon;
          exsr Quit;
    ‚  // ******************************************************************************************
            begsr Quit;
            *Inlr=*on;
            endsr;
    ‚
    ‚ /End-free 


Das Etikett sieht so aus:

Image Modified