Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

printing sapscript label using zebra printer

Former Member
0 Kudos

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

3 REPLIES 3

Former Member
0 Kudos

Hi Swarna,

First Check the whether your Form is Active or Not?

I thing still your form is In active.

Activate the Form and try Again.

Thanks,

Reward If Helpful.

0 Kudos

hi Viji,

i forgot to mention that i am getting that error message even after activating the form.

Kindly help me...

Thanks

Preethi

0 Kudos

Hi Swarna,

CALL FUNCTION 'OPEN_FORM'

EXPORTING

device = 'PRINTER'

language = language

OPTIONS = print_infos

<b>form = tnapr-fonam</b>

dialog = ' '.

x_open := x.

I thing its not a good way to pass the Form name to the Parameter.

Try like,

data : temp_form like tnapr-fonam.

<b>form = temp_form</b>

Thanks.