Skip to Content
0
Former Member
Feb 28, 2009 at 03:38 AM

please help me with this code

41 Views

hi to all experts ,

my requirement is print a barcode..The first part is an alv with two editable fields when user checks the checkbox and changes the second coloumn that no of prints are to be printed ....everything is fine but the problem is if suppose first 3 checkboxes are checked and qty to print is 3 for each .So the total no of prints should be 9 which im able to see in the print preview ......but the problem is when after seeing the print preview when we are back to the alv screen and uncheck one checkbox so now the pages should be 6 but it is still 9 what could be the problem here is my code since i cannot post full im sending in parts.......any help will greatly apprieciated ..........................thanks

 

TYPE-POOLS: slis.

*TYPES DECLARATIONS

TYPES:BEGIN OF ty_output,

cbox(1) TYPE c,"selection checkbox

menge1 TYPE char16,"QUANTITY TO PRINT

mblnr TYPE mkpf-mblnr,"MATERIAL DOCUMENT NUMBER

bwart TYPE mseg-bwart,"MOVEMENT TYPE

btext TYPE t156t-btext,"MOVEMENT TYPE DESCRIPTION

matnr TYPE mseg-matnr,"MATERIAL NUMBER

maktx TYPE makt-maktx,"MATERIAL DESCRIPTION

menge2 TYPE mseg-menge,"QUANTITY

meins TYPE mseg-meins,"BASE UNIT OF MEASUREMENT

werks TYPE mseg-werks,"PLANT

lgort TYPE mseg-lgort,"STORAGE LOCATION

ebeln TYPE mseg-ebeln,"PO DOCUMENT NUMBER

lifnr TYPE mseg-lifnr,"VENDOR

bldat TYPE mkpf-bldat,"DOCUMENT DATE

budat TYPE mkpf-budat,"POSTING DATE

usnam TYPE mkpf-usnam,"USER ID

xblnr TYPE mkpf-xblnr,"MATERIAL SLIP

END OF ty_output.

TYPES : BEGIN OF ty_data,

menge TYPE mseg-menge,"QUANTITY

mblnr TYPE mkpf-mblnr,"MATERIAL DOCUMENT NUMBER

bwart TYPE mseg-bwart,"MOVEMENT TYPE

matnr TYPE mseg-matnr,"MATERIAL NUMBER

meins TYPE mseg-meins,"BASE UNIT OF MEASUREMENT

werks TYPE mseg-werks,"PLANT

lgort TYPE mseg-lgort,"STORAGE LOCATION

ebeln TYPE mseg-ebeln,"PO DOCUMENT NUMBER

lifnr TYPE mseg-lifnr,"VENDOR

bldat TYPE mkpf-bldat,"DOCUMENT DATE

budat TYPE mkpf-budat,"POSTING DATE

usnam TYPE mkpf-usnam,"USER ID

xblnr TYPE mkpf-xblnr,"MATERIAL SLIP

END OF ty_data.

TYPES: BEGIN OF ty_btext,

btext TYPE t156t-btext,

bwart TYPE t156-bwart,

END OF ty_btext.

TYPES : BEGIN OF ty_maktx,

maktx TYPE makt-maktx,

matnr TYPE makt-matnr,

END OF ty_maktx.

TYPES: BEGIN OF ty_mard,

matnr TYPE mard-matnr,

lgpbe TYPE mard-lgpbe,

END OF ty_mard.

*INTERNAL TABLES

DATA: it_output TYPE STANDARD TABLE OF ty_output,

it_data TYPE STANDARD TABLE OF ty_data,

it_btext TYPE STANDARD TABLE OF ty_btext,

it_maktx TYPE STANDARD TABLE OF ty_maktx,

it_fieldcat TYPE STANDARD TABLE OF slis_fieldcat_alv,

it_events TYPE STANDARD TABLE OF slis_alv_event,

it_header TYPE slis_t_listheader,

it_smart TYPE STANDARD TABLE OF zmm_im_001_struc,

it_mard TYPE STANDARD TABLE OF ty_mard.

*WORK AREAS

DATA: wa_output TYPE ty_output,

wa_data TYPE ty_data,

wa_btext TYPE ty_btext,

wa_maktx TYPE ty_maktx,

wa_fieldcat TYPE slis_fieldcat_alv,

wa_events TYPE slis_alv_event,

wa_header TYPE slis_listheader,

wa_smart LIKE LINE OF it_smart,

wa_layout TYPE slis_layout_alv,

wa_mard TYPE ty_mard.

*FLAGS AND CONSTANTS

DATA: fl_sel TYPE flag.

DATA: fl_del TYPE flag,

gv_count TYPE i.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

SELECT-OPTIONS:

so_mblnr FOR mkpf-mblnr,

so_bwart FOR mseg-bwart,"MOVEMENT TYPE

so_bldat FOR mkpf-bldat,"DOCUMENT DATE

so_budat FOR mkpf-budat,"POSTING DATE

so_matnr FOR mseg-matnr,"MATERIAL ID

  • so_meins FOR mseg-meins,"BASE UNIT OF MEASUREMENT

so_werks FOR mseg-werks,"PLANT

so_lgort FOR mseg-lgort,"STORAGE LOCATION

so_lifnr FOR mseg-lifnr,"VENDOR

so_xblnr FOR mkpf-xblnr,"MATERIAL SLIP

so_ebeln FOR mseg-ebeln,"PURCHASE DOC

so_usnam FOR mkpf-usnam.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2

WITH FRAME TITLE text-002.

PARAMETERS : 1x3 RADIOBUTTON GROUP

grp1 DEFAULT 'X',

2x4 RADIOBUTTON GROUP

grp1.

SELECTION-SCREEN END OF BLOCK b2.

*

*SELECTION-SCREEN BEGIN OF LINE.

*SELECTION-SCREEN COMMENT 1(82) text-007.

*

*SELECTION-SCREEN COMMENT 89(4) text-008. " First part of your comment

*SELECTION-SCREEN END OF LINE.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_mblnr-low.

*GETTING F4 HELP FOR THE

  • >FIELD MBLNR( MATERIAL DOCUMENT NUMBER)

PERFORM get_f4val .

AT SELECTION-SCREEN ON VALUE-REQUEST FOR so_mblnr-high.

  • GETTING F4 HELP FOR THE

  • FIELD MBLNR( MATERIAL DOCUMENT NUMBER)

PERFORM get_f4val .

AT SELECTION-SCREEN.

PERFORM valid_bwart.

PERFORM valid_selscreen.

  • if no records are found displaying an error message

IF sy-dbcnt EQ 0.

MESSAGE e003(zmimr012).

ENDIF.

START-OF-SELECTION.

PERFORM get_data.

PERFORM populate_data.

PERFORM get_fcat.

PERFORM get_events.

PERFORM populate_events.

PERFORM get_layout.

PERFORM display_alv.

*

  • Refresh : it_output,

  • it_data,

  • it_smart.

&----


*& Form GET_DATA

&----


FORM get_data .

SELECT b~menge

a~mblnr

b~bwart

b~matnr

b~meins

b~werks

b~lgort

b~ebeln

b~lifnr

a~bldat

a~budat

a~usnam

a~xblnr

INTO CORRESPONDING

FIELDS OF TABLE it_data

FROM mkpf AS a

INNER JOIN mseg AS b ON

amblnr = bmblnr

AND amjahr = bmjahr

WHERE a~mblnr IN so_mblnr

AND b~bwart IN so_bwart

AND b~bwart IN ('101', '105')

AND a~bldat IN so_bldat

AND a~budat IN so_budat

AND b~matnr IN so_matnr

AND b~matnr NE space

AND b~werks IN so_werks

AND b~lgort IN so_lgort

AND b~ebeln IN so_ebeln

AND b~lifnr IN so_lifnr

AND a~xblnr IN so_xblnr

AND a~usnam IN so_usnam.

SELECT btext

bwart

FROM t156t

INTO TABLE it_btext

FOR ALL ENTRIES IN it_data

WHERE spras EQ 'EN'

AND bwart = it_data-bwart

AND sobkz = ''

AND kzbew = 'B'

AND kzzug = ''

AND kzvbr = ''.

SELECT maktx

matnr

FROM makt INTO

TABLE it_maktx

FOR ALL ENTRIES IN it_data

WHERE matnr EQ it_data-matnr

AND spras EQ 'E'.

SELECT matnr

lgpbe

FROM mard INTO

TABLE it_mard

FOR ALL ENTRIES IN it_data

WHERE matnr EQ it_data-matnr

AND werks EQ it_data-werks

AND lgort EQ it_data-lgort.

  • ENDIF.

ENDFORM. " GET_DATA

&----


*& Form GET_F4VAL

&----


FORM get_f4val .

TYPES : BEGIN OF ly_mblnr,

mblnr TYPE mkpf-mblnr,

END OF ly_mblnr.

DATA: lc_mblnr TYPE dfies-fieldname

VALUE 'MBLNR',

lc_s_mblnr TYPE help_info-dynprofld

VALUE 'SO_MBLNR-LOW',

lc_dynnr

TYPE sy-dynnr VALUE '1000',

lc_repid TYPE sy-repid.

DATA: lt_mblnr TYPE STANDARD

TABLE OF ly_mblnr,

lv_mblnr TYPE ly_mblnr,

lt_return TYPE STANDARD TABLE OF

ddshretval WITH HEADER LINE.

CLEAR:lt_mblnr[],lv_mblnr,lt_return[],lt_return.

SELECT mblnr FROM mkpf

INTO TABLE lt_mblnr.

SORT lt_mblnr.

DELETE ADJACENT DUPLICATES FROM lt_mblnr.

lc_repid = sy-repid.

CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'

EXPORTING

retfield = lc_mblnr

value_org = 'S'

dynpprog = lc_repid

dynpnr = lc_dynnr

dynprofield = lc_s_mblnr

TABLES

value_tab = lt_mblnr

return_tab = lt_return

EXCEPTIONS

parameter_error = 1

no_values_found = 2

OTHERS = 3.

IF sy-subrc <> 0.

ELSE.

lc_mblnr = lt_return-fieldval.

ENDIF.

ENDFORM. " GET_F4VAL

Edited by: mozam khan on Feb 28, 2009 4:39 AM