Application Development and Automation 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: 
Read only

General

Former Member
0 Likes
741

Hi Folks,

Is double clicking option possible in alv hierarchical list .

Regards

rock

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
700

you should set the field f2code of the layout structure with the value &ETA

and create an "AT USER COMMAND" event

3 REPLIES 3
Read only

Former Member
0 Likes
700

Hi

Welcome to SDN

Yes It is Possible

Regards

Anji

Read only

Former Member
0 Likes
701

you should set the field f2code of the layout structure with the value &ETA

and create an "AT USER COMMAND" event

Read only

Former Member
0 Likes
700

hi,

ya possible check this.

&----


*& Report ZRAW_COST

*&

&----


*&

*&

&----


REPORT ZRAW_COST.

TYPE-POOLS:slis.

TABLES:mseg,

lfa1,

mkpf,

ekpo,

mara,

j_1iexchdr,

mbew.

DATA:BEGIN OF itab_vend OCCURS 0,

lifnr LIKE lfa1-lifnr, "Vendor Code

END OF itab_vend.

DATA:BEGIN OF itab_data OCCURS 0,

lifnr LIKE mseg-lifnr, "Vendor Code

mblnr LIKE mseg-mblnr, "Material Doc.

charg LIKE mseg-charg, "Batch

matnr LIKE mseg-matnr, "Material

maktx LIKE makt-maktx, "Description

menge LIKE mseg-menge, "Quantity

dmbtr LIKE mseg-dmbtr, "Amount

budat LIKE mkpf-budat, "G.R.Date

xblnr LIKE mkpf-xblnr, "Delivery Note(Bill No.)

frbnr LIKE mkpf-frbnr, "Bill of Lading(Bill Date)

netpr LIKE ekpo-netpr, "Basic Rate

matkl LIKE ekpo-matkl, "Material Group

END OF itab_data.

DATA:BEGIN OF itab_itm OCCURS 0,

lifnr LIKE mseg-lifnr, "Vendor Code

name1 LIKE lfa1-name1, "Vendor Name

matkl LIKE ekpo-matkl, "Material Group

wgbez LIKE t023t-wgbez, "Material Group Name

mblnr LIKE mseg-mblnr, "Material Doc.

matnr LIKE mseg-matnr, "Material

maktx LIKE makt-maktx, "Description

xblnr LIKE mkpf-xblnr, "Delivery Note(Bill No.)

frbnr LIKE mkpf-frbnr, "Bill of lading(Bill Date)

budat LIKE mkpf-budat, "G.R.Date

exnum LIKE j_1iexchdr-exnum, "Ex.Bill No.

exdat LIKE j_1iexchdr-exdat, "Ex.Bill Date

charg LIKE mseg-charg, "Batch

menge LIKE mseg-menge, "Quantity

netpr LIKE ekpo-netpr, "Basic Rate

verpr LIKE mbew-verpr, "Costing Rate

dmbtr LIKE mseg-dmbtr, "Amount

END OF itab_itm.

DATA:BEGIN OF itab_head OCCURS 0,

lifnr LIKE mseg-lifnr, "Vendor Code

name1 LIKE lfa1-name1, "Vendor Name

matkl LIKE ekpo-matkl, "Material Group

wgbez LIKE t023t-wgbez, "Material Group Name

END OF itab_head.

DATA:fcat TYPE slis_t_fieldcat_alv,

eve TYPE slis_t_event,

alv_keyinfo TYPE slis_keyinfo_alv,

gt_subtot TYPE slis_t_sortinfo_alv,

subtot LIKE LINE OF gt_subtot.

DATA:ex_doc LIKE j_1iexchdr-exnum,

ex_dat LIKE j_1iexchdr-exdat,

mov_pr LIKE mbew-verpr,

name LIKE lfa1-name1,

gr_nm LIKE t023t-wgbez,

t_mblnr LIKE mseg-mblnr,

yr LIKE mseg-mjahr.

DATA: BEGIN OF record OCCURS 0,

act(003),

rfd(003),

matdoc(010),

docyr(004),

END OF record.

DATA: bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE.

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

SELECT-OPTIONS:dt FOR mkpf-budat OBLIGATORY,

vend FOR lfa1-lifnr,

mat_gr FOR mara-matkl.

SELECTION-SCREEN:END OF BLOCK blk1.

INITIALIZATION.

PERFORM build_cat USING fcat.

PERFORM build_eve.

START-OF-SELECTION.

PERFORM get_data.

PERFORM dis_data.

&----


*& Form build_cat

&----


  • text

----


  • -->T_FCAT text

----


FORM build_cat USING t_fcat TYPE slis_t_fieldcat_alv.

DATA:wa_fcat TYPE slis_fieldcat_alv.

wa_fcat-tabname = 'ITAB_HEAD'.

wa_fcat-fieldname = 'NAME1'.

wa_fcat-seltext_m = 'Vendor Name'.

wa_fcat-outputlen = '30'.

  • wa_fcat-just = 'C'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_HEAD'.

wa_fcat-fieldname = 'WGBEZ'.

wa_fcat-seltext_m = 'Material Group Name'.

wa_fcat-outputlen = '30'.

wa_fcat-just = 'C'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'MBLNR'.

wa_fcat-seltext_m = 'Material Doc.'.

wa_fcat-outputlen = '15'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'MAKTX'.

wa_fcat-seltext_m = 'Product Name'.

wa_fcat-outputlen = '40'.

wa_fcat-just = 'L'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'XBLNR'.

wa_fcat-seltext_m = 'Bill.No.'.

wa_fcat-just = 'C'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'FRBNR'.

wa_fcat-seltext_m = 'Bill Date'.

wa_fcat-just = 'C'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'BUDAT'.

wa_fcat-seltext_m = 'G.R.Date'.

wa_fcat-outputlen = '10'.

wa_fcat-just = 'C'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'EXNUM'.

wa_fcat-seltext_m = 'Ex.Bill.No.'.

wa_fcat-just = 'C'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'EXDAT'.

wa_fcat-seltext_m = 'Ex.Bill Date'.

wa_fcat-just = 'C'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'CHARG'.

wa_fcat-seltext_m = 'Batch'.

wa_fcat-outputlen = '15'.

wa_fcat-just = 'C'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'MENGE'.

wa_fcat-seltext_m = 'Qty'.

wa_fcat-do_sum = 'Y'.

wa_fcat-outputlen = '15'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'NETPR'.

wa_fcat-seltext_m = 'Basic Rate'.

wa_fcat-do_sum = 'Y'.

wa_fcat-outputlen = '12'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'VERPR'.

wa_fcat-seltext_m = 'Costing Rate'.

wa_fcat-do_sum = 'Y'.

wa_fcat-outputlen = '12'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB_ITM'.

wa_fcat-fieldname = 'DMBTR'.

wa_fcat-seltext_m = 'Amount'.

wa_fcat-do_sum = 'Y'.

wa_fcat-outputlen = '15'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

subtot-spos = 1.

subtot-fieldname = 'NAME1'.

subtot-tabname = 'ITAB_HEAD'.

subtot-up = 'X'.

subtot-group = 'X'.

subtot-subtot = 'X'.

subtot-expa = 'X'.

APPEND subtot TO gt_subtot.

subtot-spos = 2.

subtot-fieldname = 'WGBEZ'.

subtot-tabname = 'ITAB_HEAD'.

subtot-up = 'X'.

subtot-group = 'X'.

subtot-subtot = 'X'.

subtot-expa = 'X'.

APPEND subtot TO gt_subtot.

ENDFORM. "build_cat

&----


*& Form build_eve

&----


  • text

----


FORM build_eve.

DATA:t_eve TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = eve.

IF sy-subrc <> 0.

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

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

ENDIF.

READ TABLE eve INTO t_eve WITH KEY name = 'USER_COMMAND'.

IF sy-subrc = 0.

t_eve-form = 'USER_COMMAND'.

MODIFY eve FROM t_eve TRANSPORTING form WHERE name = t_eve-name.

ENDIF.

ENDFORM. "build_eve

&----


*& Form get_data

&----


  • text

----


FORM get_data.

SELECT DISTINCT mseg~lifnr INTO CORRESPONDING FIELDS OF TABLE itab_vend

FROM mseg INNER JOIN mkpf

ON msegmblnr = mkpfmblnr

WHERE mkpfbudat IN dt AND mseglifnr IN vend.

LOOP AT itab_vend.

SELECT mseglifnr msegmblnr msegmatnr maktmaktx msegcharg msegmenge msegdmbtr mkpfbudat mkpfxblnr mkpffrbnr ekponetpr ekpomatkl

INTO CORRESPONDING FIELDS OF TABLE itab_data

FROM mseg INNER JOIN mkpf ON

msegmblnr = mkpfmblnr

INNER JOIN ekpo ON

msegebeln = ekpoebeln AND msegmatnr = ekpomatnr

INNER JOIN makt ON

msegmatnr = maktmatnr

WHERE mkpfbudat IN dt AND mseglifnr IN vend AND msegbwart = '101' AND msegebeln <> '' AND ekpo~matkl IN mat_gr.

ENDLOOP.

SORT itab_data BY lifnr matkl matnr mblnr.

LOOP AT itab_data.

CLEAR: ex_doc,ex_dat,mov_pr,name,gr_nm.

MOVE-CORRESPONDING itab_data TO itab_itm.

SELECT SINGLE name1 FROM lfa1 INTO name WHERE lifnr = itab_data-lifnr.

SELECT SINGLE wgbez FROM t023t INTO gr_nm WHERE matkl = itab_data-matkl.

SELECT SINGLE exnum exdat FROM j_1iexchdr INTO (ex_doc,ex_dat) WHERE rdoc = itab_data-mblnr.

SELECT SINGLE verpr INTO mov_pr FROM mbew WHERE matnr = itab_data-matnr AND bwtar = itab_data-charg.

itab_itm-exnum = ex_doc.

itab_itm-exdat = ex_dat.

itab_itm-verpr = mov_pr.

itab_itm-name1 = name.

itab_itm-wgbez = gr_nm.

APPEND itab_itm.

ENDLOOP.

SORT itab_itm . "BY lifnr matkl mblnr matnr charg.

DELETE ADJACENT DUPLICATES FROM itab_itm.

ENDFORM. "get_data

&----


*& Form dis_data

&----


  • text

----


FORM dis_data.

alv_keyinfo-header01 = 'LIFNR'.

alv_keyinfo-item01 = 'LIFNR'.

alv_keyinfo-header02 = 'MATKL'.

alv_keyinfo-item02 = 'MATKL'.

REFRESH itab_head.

LOOP AT itab_itm.

ON CHANGE OF itab_itm-lifnr OR itab_itm-matkl .

MOVE-CORRESPONDING itab_itm TO itab_head.

APPEND itab_head.

ENDON.

ENDLOOP.

CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'

EXPORTING

i_callback_program = 'ZRAW_COST'

it_fieldcat = fcat

it_sort = gt_subtot

it_events = eve

i_tabname_header = 'ITAB_HEAD'

i_tabname_item = 'ITAB_ITM'

is_keyinfo = alv_keyinfo

TABLES

t_outtab_header = itab_head

t_outtab_item = itab_itm

EXCEPTIONS

program_error = 1

OTHERS = 2.

IF sy-subrc <> 0.

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

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

ENDIF.

ENDFORM. "dis_data

&----


*& Form user_command

&----


  • text

----


  • -->U_COM text

  • -->SEL_FIELD text

----


FORM user_command USING u_com LIKE sy-ucomm sel_field TYPE slis_selfield.

CASE u_com.

WHEN '&IC1'.

READ TABLE itab_itm INDEX sel_field-tabindex.

IF sy-subrc = 0.

t_mblnr = itab_itm-mblnr.

  • SELECT SINGLE mjahr FROM mseg INTO yr WHERE mblnr = record-matdoc.

CALL FUNCTION 'MIGO_DIALOG'

EXPORTING

i_action = 'A04'

i_refdoc = 'R02'

i_notree = 'X'

i_no_auth_check = ' '

i_skip_first_screen = 'X'

i_deadend = 'X'

i_okcode = 'OK_GO'

i_mblnr = t_mblnr.

  • i_mjahr = yr.

IF sy-subrc <> 0.

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

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

ENDIF.

CLEAR sel_field-tabindex.

ENDIF.

ENDCASE.

ENDFORM. "user_command

reward if useful.