Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

printing sapscript label using zebra printer

Hi,

Can anybody please help me regarding "printing sapscript label using zebra printer"?

i hav set the following print default settings in the transaction mb90:

output device :

NO01


device type:

YZZX_ZEB


but when i try to print ,i am getting error message stating that

"the respective sapscript form is not active ".

i hav also attached my print program for ur easy reference.

  • ====================================================================*

FORM open_form_slv.

*

*' Description:

*' -

-


*' Add information for the SAP spooler

*' Change the name of the standard customized form for Zebra print

*'

*' Last Change Vers Programmer Reason

*' -

-


-

-


-

-


-

-


*'

*'

*'

*'----

-


*

  • *1

DATA: BEGIN OF print_infos.

INCLUDE STRUCTURE itcpo.

DATA: END OF print_infos.

*

DATA: form_name(16) TYPE c, char1(1) TYPE c, ind_beg TYPE i.

*

PERFORM itcpo_fuellen.

MOVE-CORRESPONDING itcpo TO print_infos.

WRITE sy-datum USING EDIT MASK '__.__.____'

TO print_infos-tdcovtitle+1.

WRITE sy-uzeit USING EDIT MASK '__:__:__'

TO print_infos-tdcovtitle+12.

CONCATENATE itcpo-tddest sy-uname ' PO'(001) ekpo-ebeln ' Doc.No'(002)

mseg-mblnr print_infos-tdcovtitle

INTO print_infos-tdcovtitle SEPARATED BY space.

*

  • form name from the table YZZM_GR_LABEL

IF NOT g_fonam IS INITIAL.

tnapr-fonam = g_fonam.

ENDIF.

  • if the used printer is a Zebra label printer, then the customized

  • layout set name ???_???_XXX will be changed to ???_???_ZP

SELECT SINGLE * FROM tsp03d WHERE padest = nast-ldest.

IF tsp03d-patype = 'YZZX_ZEB'.

ind_beg := 15.

WHILE ind_beg > -1.

char1 := tnapr-fonam+ind_beg. " substr(tnapr-fonam,ind_beg,1)

IF char1 = '_'.

form_name := tnapr-fonam(ind_beg).

CONCATENATE form_name '_ZP' INTO tnapr-fonam.

EXIT.

ENDIF.

ind_beg := ind_beg - 1.

ENDWHILE.

ENDIF.

CALL FUNCTION 'OPEN_FORM'

EXPORTING

device = 'PRINTER'

language = language

OPTIONS = print_infos

form = tnapr-fonam

dialog = ' '.

x_open := x.

*

IF mseg-weanz = 0. mseg-weanz = 1. ENDIF.

*

IF syst-tcode <> 'MB90' AND NOT g_flag_popup IS INITIAL.

  • check for requirement of printing label and ask for gr-quantities (popup)

SELECT SINGLE * FROM yzzm_gr_quantity WHERE ebeln = mseg-ebeln.

CLEAR yzzm_gr_quantity-no_popup.

ELSE.

  • and ask not for gr-quantities

IF syst-tcode = 'MB90'.

yzzm_gr_quantity-erfmg := mseg-menge.

ELSE.

yzzm_gr_quantity-erfmg := mseg-menge / mseg-weanz.

ENDIF.

yzzm_gr_quantity-no_popup := x.

ENDIF.

*

  • determination inspection lot number

CLEAR qals-prueflos.

SELECT SINGLE * FROM qals WHERE mblnr = mseg-mblnr

AND zeile = mseg-zeile

AND mjahr = mseg-mjahr.

*

  • determination vendor batch

CLEAR mch1-licha.

SELECT SINGLE * FROM mch1 INTO mch1 WHERE matnr = mseg-matnr

AND charg = mseg-charg.

*

ENDFORM. "open_form_label

*

  • =================================================================== *

FORM we01_print_slv.

*

*' Description:

*' -

-


*' print out of hazardous symbol

*' controls the Zebra printer

*'

*' Last Change Vers Programmer Reason

*' -

-


-

-


-

-


-

-


*'

*'

*'

*'----

-


*

*

*****26.09.2007 Starts

DATA: l_objky TYPE nast-objky,"Object key

l_vstat TYPE nast-vstat. "Processing status of message

*****26.09.2007 Starts

TABLES: mgef, t300.

FIELD-SYMBOLS: .

*

DATA: aux_index LIKE sy-index.

*

DATA: count_haz_sym, position TYPE n, zw TYPE p DECIMALS 1.

DATA: aux_value(5) TYPE c.

DATA: txt(10) TYPE c, pos(5) TYPE c.

*

t001w-werks = r_werks.

t001w-name1 = r_name1.

PERFORM read_address.

  • *2

SELECT SINGLE * FROM ekpo WHERE ebeln = mseg-ebeln

AND ebelp = mseg-ebelp.

*

CLEAR mara-stoff.

SELECT SINGLE stoff INTO mara-stoff FROM mara WHERE matnr = mseg-matnr.

IF NOT mara-stoff IS INITIAL.

CLEAR t300.

SELECT SINGLE * FROM t300 WHERE lgnum = mseg-lgnum.

IF NOT sy-subrc IS INITIAL.

  • for plants without warehouses try to use the country code

CASE mseg-werks.

WHEN 'BUP'.

t300-regkz := 'US '.

ENDCASE.

ENDIF.

CLEAR mgef.

SELECT SINGLE * FROM mgef WHERE stoff = mara-stoff

AND regkz = t300-regkz.

ENDIF.

*

  • in case of more then one label, use for each a new output window

  • (not only for the first)

IF g_count > 1.

CALL FUNCTION 'CONTROL_FORM'

EXPORTING

command = 'NEW-WINDOW'.

ENDIF.

*

  • Ausgabe Gefahrstoffsysmbole Neustadt, V.Hilgert 14.07.98

*

*For output type YNL7, the hazardous warning symbol has to be printed at the bottom of the label.So label is called before that.

IF tnapr-kschl = 'YNL7'.

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element = 'LABEL'.

ENDIF.

count_haz_sym = 0. position = 0.

WHILE count_haz_sym = 'XN'.

  • For output type YNL7, the width of the standard text is small.

IF tnapr-kschl = 'YNL7'.

zw = position * '0.2' + '0.1'. pos = zw.

ELSE.

zw = position * '1.3' + '0.1'. pos = zw.

ENDIF.

*

IF tsp03d-patype = 'YZZX_ZEB'. " device type for ZEBRA label priter

aux_value := count_haz_sym.

ELSE.

aux_value := pos. " HP/Kyocera or other laser printer

ENDIF.

CALL FUNCTION 'TEXT_SYMBOL_SETVALUE'

EXPORTING

name = '&XPOS&'

value = aux_value

EXCEPTIONS

OTHERS = 1.

*

CALL FUNCTION 'WRITE_FORM'

EXPORTING

element =

window = 'MAIN'

EXCEPTIONS

element = 1

function = 2

type = 3

unopened = 4

unstarted = 5

window = 6

OTHERS = 7.

*

IF sy-subrc = 0.

  • *Varying the position for YNL7

IF tnapr-kschl = 'YNL7'.

position = position + 2.

ELSE.

position = position + 1.

ENDIF.

ENDIF.

ENDIF.

ENDWHILE.

IF NOT mseg-vfdat IS INITIAL.

am07m-mhtxt = text-105.

ENDIF.

IF NOT am07m-mhdat IS INITIAL.

am07m-mhztx = text-106.

ENDIF.

IF ekko-bsart = 'UB'.

am07m-litxt = text-101.

am07m-libzg = ekko-reswk.

ELSE.

am07m-litxt = text-100.

am07m-libzg = ekko-lifnr.

ENDIF.

belpos-mblnr = mkpf-mblnr.

belpos-zeile = mseg-zeile.

CONDENSE belpos NO-GAPS.

am07m-belpos = belpos.

IF t156-shkzg = h.

am07m-hdlne = text-020.

ELSE.

am07m-hdlne = text-010.

ENDIF.

*

  • Ausgabe der Etiketten mit den ind. Mengen

IF NOT g_flag_popup IS INITIAL.

SELECT SINGLE * FROM yzzm_gr_quantity WHERE ebeln = mseg-ebeln

AND weanz = g_count.

ELSE.

* print the number of labels is handeled by the Zebra printer
IF tsp03d-patype = 'YZZX_ZEB'. " device type for Zebra label prts
g_lbls_tot := mseg-weanz - g_count + 1.
g_break_print := x.
ENDIF.
ENDIF.
mseg-erfmg := yzzm_gr_quantity-erfmg.

*
********26.09.2007 Starts
CONCATENATE mseg-mblnr mseg-mjahr mseg-zeile INTO l_objky.
SELECT SINGLE vstat INTO l_vstat FROM nast WHERE kappl = 'ME' AND
objky = l_objky AND
kschl = 'YNL7'.
********26.09.2007 Ends
CALL FUNCTION 'TEXT_SYMBOL_SETVALUE'
EXPORTING
name = '&nummer&'
value = g_count.
IF tnapr-kschl <> 'YNL7'.

CALL FUNCTION 'WRITE_FORM'
EXPORTING
element = 'LABEL'.

else.
CALL FUNCTION 'WRITE_FORM'
EXPORTING
ELEMENT = 'BAR_CODE'
EXCEPTIONS
ELEMENT = 1
FUNCTION = 2
TYPE = 3
UNOPENED = 4
UNSTARTED = 5
WINDOW = 6
BAD_PAGEFORMAT_FOR_PRINT = 7
SPOOL_ERROR = 8
CODEPAGE = 9
OTHERS = 10.

IF sy-subrc <> 0.

MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

ENDFORM. "GR_label_print

*&----


*

*& Form lesen

*&----


*

  • text

*----


*

  • -->OBJKY text

*----


*

FORM lesen USING objky.

nast_key = objky.

CLEAR retco.

SELECT SINGLE * FROM mkpf WHERE mblnr = nast_key-mblnr

AND mjahr = nast_key-mjahr.

SELECT SINGLE * FROM mseg WHERE mblnr = mkpf-mblnr

AND zeile = nast_key-zeile

AND mjahr = mkpf-mjahr.

IF sy-subrc NE 0.

retco = sy-subrc.

EXIT.

ENDIF.

PERFORM tab156_lesen.

xskkz = t156-rstyp.

PERFORM tab001w_lesen.

IF NOT mseg-evers IS INITIAL. "Versandvorschriften lesen.

PERFORM t027_lesen.

ENDIF.

PERFORM bestellung_lesen.

IF NOT ekpo-knttp IS INITIAL AND NOT

ekpo-weunb IS INITIAL.

PERFORM kontierung_lesen. "für multikontierte Bestellungen

ENDIF.

IF NOT mseg-ematn IS INITIAL.

PERFORM lesen_htn.

ELSE. "111277/PH

CLEAR am07m-mfrpn. "111277/PH

ENDIF.

IF mseg-matnr IS INITIAL.

mseg-menge = mseg-bpmng.

mseg-meins = mseg-bprme.

PERFORM bestelltext_lesen.

CLEAR mabdr.

ELSE.

PERFORM material_lesen.

ENDIF.

PERFORM tab024_lesen.

PERFORM t064b_lesen.

PERFORM ladr_lesen.

ENDFORM. "lesen

*----


Lesen für WE-Schein Fert.Auftrag -


*

FORM lesen_wf USING objky.

nast_key = objky.

CLEAR retco.

SELECT SINGLE * FROM mkpf WHERE mblnr = nast_key-mblnr

AND mjahr = nast_key-mjahr.

SELECT SINGLE * FROM mseg WHERE mblnr = mkpf-mblnr

AND zeile = nast_key-zeile

AND mjahr = mkpf-mjahr.

IF sy-subrc NE 0.

retco = sy-subrc.

EXIT.

ENDIF.

PERFORM tab156_lesen.

xskkz = t156-rstyp.

PERFORM tab001w_lesen.

PERFORM auftrag_lesen.

IF NOT mseg-matnr IS INITIAL.

PERFORM material_lesen.

ELSE.

mseg-menge = mseg-erfmg.

mseg-meins = mseg-erfme.

ENDIF.

PERFORM tab024d_lesen.

PERFORM t064b_lesen.

PERFORM ladr_lesen.

ENDFORM. "lesen_wf

*----


Lesen für Warenausgang -


*

FORM lesen_wa USING objky.

nast_key = objky.

CLEAR retco.

SELECT SINGLE * FROM mkpf WHERE mblnr = nast_key-mblnr

AND mjahr = nast_key-mjahr.

SELECT SINGLE * FROM mseg WHERE mblnr = mkpf-mblnr

AND zeile = nast_key-zeile

AND mjahr = mkpf-mjahr.

IF sy-subrc NE 0.

retco = sy-subrc.

EXIT.

ENDIF.

PERFORM tab156_lesen.

xskkz = t156-rstyp.

PERFORM tab001w_lesen.

IF NOT mseg-matnr IS INITIAL.

PERFORM material_lesen.

ENDIF.

PERFORM ladr_lesen.

ENDFORM. "lesen_wa

*----


Druck Vorbereiten -


*

FORM open_form.

PERFORM itcpo_fuellen.

CALL FUNCTION 'OPEN_FORM'

EXPORTING

device = 'PRINTER'

language = language

OPTIONS = itcpo

dialog = ' '.

PERFORM lesen_t159p.

x_open = x.

ENDFORM. "open_form

*----


Druck Vorbereiten Sammelscheine -


*

FORM open_form_sammel.

PERFORM lesen_t159p.

PERFORM itcpo_fuellen.

CALL FUNCTION 'OPEN_FORM'

EXPORTING

device = 'PRINTER'

language = language

OPTIONS = itcpo

form = tnapr-fonam

dialog = ' '.

x_open = x.

ENDFORM. "open_form_sammel

*----


Druck schließen -


*

FORM close_form.

CHECK NOT x_open IS INITIAL.

CALL FUNCTION 'CLOSE_FORM'.

CLEAR x_open.

ENDFORM. "close_form

*----


Hilfsfelder versorgen für Sammelscheindruck -


*

FORM helpdata1.

*mkpf = mkpf.

*mseg-lgort = mseg-lgort.

*ladr = ladr.

save_mkpf = *mkpf-usnam.

save_mblnr = *mkpf-mblnr.

save_budat = *mkpf-budat.

save_cpudt = *mkpf-cpudt.

save_ematn = *mseg-ematn.

save_lgort = *mseg-lgort.

save_ladr = *ladr.

*t001w = t001w.

save_werks = *t001w-werks.

save_name1 = *t001w-name1.

*ekko = ekko.

*am07m = am07m.

save_lifnr = *ekko-lifnr.

save_ebeln = *ekko-ebeln.

save_ekgrp = *ekko-ekgrp.

save_linam = *am07m-name1.

save_lina2 = *am07m-name2.

*t024 = t024.

save_eknam = *t024-eknam.

save_ektel = *t024-ektel.

*mkpf-usnam = old_mkpf.

*mkpf-mblnr = old_mblnr.

*mkpf-cpudt = old_cpudt.

*mkpf-budat = old_budat.

*mseg-ematn = old_ematn.

*mseg-lgort = old_lgort.

*ladr = old_ladr.

*t001w-werks = old_werks.

*t001w-name1 = old_name1.

*t024-eknam = old_eknam.

*t024-ektel = old_ektel.

*ekko-lifnr = old_lifnr.

*ekko-ebeln = old_ebeln.

*ekko-ekgrp = old_ekgrp.

*am07m-name1 = old_linam.

*am07m-name2 = old_lina2.

save_lfa1 = lfa1.

IF NOT old_lfa1 IS INITIAL.

lfa1 = old_lfa1.

ENDIF.

ENDFORM. "helpdata1

--- Versorgung der Hilfsfelder vor CLOSE_FORM bei Sammelscheindruck --

FORM helpdata2.

old_lfa1 = save_lfa1.

lfa1 = save_lfa1.

old_mkpf = save_mkpf.

old_lgort = save_lgort.

old_ladr = save_ladr.

old_budat = save_budat.

old_cpudt = save_cpudt.

old_werks = save_werks.

old_name1 = save_name1.

old_mblnr = save_mblnr.

old_lifnr = save_lifnr.

old_linam = save_linam.

old_lina2 = save_lina2.

old_ebeln = save_ebeln.

old_ekgrp = save_ekgrp.

old_eknam = save_eknam.

old_ektel = save_ektel.

old_ematn = save_ematn.

*mkpf-usnam = save_mkpf.

*mkpf-mblnr = save_mblnr.

*mkpf-budat = save_budat.

*mkpf-cpudt = save_cpudt.

*mseg-ematn = save_ematn.

*mseg-lgort = save_lgort.

*ladr = save_ladr.

*t001w-werks = save_werks.

*t001w-name1 = save_name1.

*t024-eknam = save_eknam.

*t024-ektel = save_ektel.

*ekko-lifnr = save_lifnr.

*ekko-ebeln = save_ebeln.

*ekko-ekgrp = save_ekgrp.

*am07m-name1 = save_linam.

*am07m-name2 = save_lina2.

ENDFORM. "helpdata2

*----


Form Lesen Warenausgang Lohnbearbeiter -


*

FORM lesen_wlb USING objky.

nast_key = objky.

CLEAR retco.

SELECT SINGLE * FROM mkpf WHERE mblnr = nast_key-mblnr

AND mjahr = nast_key-mjahr.

SELECT SINGLE * FROM mseg WHERE mblnr = mkpf-mblnr

AND zeile = nast_key-zeile

AND mjahr = mkpf-mjahr.

IF sy-subrc NE 0.

retco = sy-subrc.

EXIT.

ENDIF.

PERFORM tab156_lesen.

xskkz = t156-rstyp.

PERFORM tab001w_lesen.

IF NOT mseg-matnr IS INITIAL.

PERFORM material_lesen.

ENDIF.

ON CHANGE OF mseg-lifnr.

PERFORM read_address.

ENDON.

ENDFORM. "lesen_wlb

*eject

*----


Fuellen der ITCPO -


*

FORM itcpo_fuellen.

IF xscreen NE space.

*- Testausgabe auf Bildschirm -

-


itcpo-tdpreview = 'X'.

itcpo-tdnoprint = 'X'.

ELSE.

CLEAR: itcpo-tdpreview,

itcpo-tdnoprint.

ENDIF.

MOVE-CORRESPONDING nast TO itcpo.

itcpo-tdcover = nast-tdocover.

itcpo-tddest = nast-ldest.

itcpo-tddataset = nast-dsnam.

itcpo-tdsuffix1 = nast-dsuf1.

itcpo-tdsuffix2 = nast-dsuf2.

itcpo-tdimmed = nast-dimme.

itcpo-tddelete = nast-delet.

itcpo-tdcopies = nast-anzal.

itcpo-tdprogram = sy-repid.

  • ITCPO-TDTELELAND = US_COUNTRY.

itcpo-tdsenddate = nast-vsdat.

itcpo-tdsendtime = nast-vsura.

itcpo-tdnewid = x.

ENDFORM. "itcpo_fuellen

*eject.

  • ------------ FORM lesen der Lagerortadr. ---------------------------*

FORM ladr_lesen.

DATA: BEGIN OF addr_sel.

INCLUDE STRUCTURE addr1_sel.

DATA: END OF addr_sel.

CLEAR ladr.

SELECT SINGLE * FROM twlad WHERE werks = mseg-werks

AND lgort = mseg-lgort

AND lfdnr = '001'.

IF NOT twlad-adrnr IS INITIAL AND sy-subrc IS INITIAL.

MOVE twlad-adrnr TO addr_sel-addrnumber.

ENDIF.

CALL FUNCTION 'ADDR_GET'

EXPORTING

address_selection = addr_sel

IMPORTING

sadr = ladr

EXCEPTIONS

OTHERS = 1.

ENDFORM. "ladr_lesen

**&----


*

**& Form REPRINT

**&----


*

    • text

**----


*

*FORM reprint.

  • TABLES : nase.

  • DATA : x TYPE string.

*

  • IF nase-vermo = 2.

  • x = 'REPRINT'.

  • ENDIF.

*

*

*

*

*ENDFORM. "REPRINT

Kindly do the needful.

Thanks in advance

Regards

Swarna

Tags:
Former Member
Not what you were looking for? View more on this topic or Ask a question