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: 

Problam with i_callback_user_command in ALV list for secondary list print

Former Member
0 Kudos

I have a ALV LIst output for my report wherever i run the report my report is working fine. in this report i used for ""i_callback_user_command = 'SUMMARY' "" command for display the secondary list <i>(the purpose of display summary of the report in secondary list)</i> but my secondary list is not working fine coz this is display in the same main list and if i wana see my main list after my secondary list its exit from main too.

If it can do through a popup with ALV LIST it will be much better for me.

This is my code what i m using plz go through it if u can help me.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_top_of_page = 'TOP_OF_PAGE'

i_callback_user_command = 'SUMMARY'

it_fieldcat = i_fieldcat

is_variant = l_layout

i_save = 'A'

is_layout = w_layo

TABLES

t_outtab = i_final

EXCEPTIONS

program_error = 1

OTHERS = 2.

i am writing a table on secondary list

3 REPLIES 3

Former Member
0 Kudos

hi,

what ever ur want to get secondary list that user command u have to pass in list display function module, may be ur passing some different user command, see following code here i am getting secondary list when i am passing user_command

into finction module...

FORM user_command USING r_ucomm LIKE sy-ucomm rs_selfield TYPE

slis_selfield.

IF rs_selfield-fieldname = 'VBELN'.

delivar1 = rs_selfield-value.

ENDIF.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = repid

it_fieldcat = i_fieldcat1[]

i_callback_top_of_page = 'TOP_OF_PAGE'

i_callback_user_command = 'USER_COMMAND1'

it_events = i_events

TABLES

t_outtab = i_vbup1

EXCEPTIONS

program_error = 1

OTHERS = 2.

do the same then u wil get output...

<b><REMOVED BY MODERATOR></b>

praveen

Message was edited by:

Alvaro Tejada Galindo

Former Member
0 Kudos

hi,

try like this.

Hope it will b helpful.

&----


*& Report ZINT_ALV

*&

&----


*&

*&

&----


REPORT zint_alv.

TYPE-POOLS:slis.

TABLES:mara,

makt,

mseg.

DATA:BEGIN OF itab OCCURS 0,

matnr LIKE mara-matnr,

maktx LIKE makt-maktx,

END OF itab.

DATA:BEGIN OF itab1 OCCURS 0,

mblnr LIKE mseg-mblnr,

menge LIKE mseg-menge,

meins LIKE mseg-meins,

werks LIKE mseg-werks,

END OF itab1.

DATA:fcat TYPE slis_t_fieldcat_alv,

fcat1 TYPE slis_t_fieldcat_alv,

eve TYPE slis_t_event,

eve1 TYPE slis_t_event.

DATA:t_mat LIKE mara-matnr.

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

SELECT-OPTIONS:mat FOR mara-matnr.

SELECTION-SCREEN:END OF BLOCK blk1.

INITIALIZATION.

PERFORM build_fcat USING fcat.

PERFORM build_eve.

START-OF-SELECTION.

PERFORM get_data.

PERFORM dis_data.

&----


*& Form build_fcat

&----


  • text

----


  • -->T_FCAT text

----


FORM build_fcat USING t_fcat TYPE slis_t_fieldcat_alv.

DATA:wa_fcat TYPE slis_fieldcat_alv.

wa_fcat-tabname = 'ITAB'.

wa_fcat-fieldname = 'MATNR'.

wa_fcat-seltext_m = 'Material'.

wa_fcat-hotspot = 'X'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

wa_fcat-tabname = 'ITAB'.

wa_fcat-fieldname = 'MAKTX'.

wa_fcat-seltext_m = 'Description'.

APPEND wa_fcat TO t_fcat.

CLEAR wa_fcat.

ENDFORM. "build_fcat

&----


*& 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

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 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.

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 maramatnr maktmaktx INTO CORRESPONDING FIELDS OF TABLE itab

FROM mara INNER JOIN makt

ON maramatnr = maktmatnr

WHERE mara~matnr IN mat.

ENDFORM. "get_data

&----


*& Form dis_data

&----


  • text

----


FORM dis_data.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = 'ZINT_ALV'

i_callback_user_command = 'USER_COMMAND'

i_grid_title = 'Interactive ALV'

it_fieldcat = fcat

it_events = eve

TABLES

t_outtab = itab

  • 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

----


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

CLEAR fcat1.

CASE u_com.

WHEN '&IC1'.

READ TABLE itab INDEX sel_field-tabindex.

IF sy-subrc = 0.

t_mat = itab-matnr.

PERFORM build_cat1 USING fcat1.

PERFORM build_eve1.

PERFORM get_data1.

PERFORM dis_data1.

ENDIF.

ENDCASE.

ENDFORM. "user_command

&----


*& Form build_fcat1

&----


  • text

----


  • -->T_FCAT1 text

----


FORM build_cat1 USING t_fcat1 TYPE slis_t_fieldcat_alv.

DATA:wa_fcat1 TYPE slis_fieldcat_alv.

wa_fcat1-tabname = 'ITAB1'.

wa_fcat1-fieldname = 'MBLNR'.

wa_fcat1-seltext_m = 'Material Doc.'.

APPEND wa_fcat1 TO t_fcat1.

CLEAR wa_fcat1.

wa_fcat1-tabname = 'ITAB1'.

wa_fcat1-fieldname = 'MENGE'.

wa_fcat1-seltext_m = 'Quantity'.

APPEND wa_fcat1 TO t_fcat1.

CLEAR wa_fcat1.

wa_fcat1-tabname = 'ITAB1'.

wa_fcat1-fieldname = 'MEINS'.

wa_fcat1-seltext_m = 'UOM'.

APPEND wa_fcat1 TO t_fcat1.

CLEAR wa_fcat1.

wa_fcat1-tabname = 'ITAB1'.

wa_fcat1-fieldname = 'WERKS'.

wa_fcat1-seltext_m = 'Plant'.

APPEND wa_fcat1 TO t_fcat1.

CLEAR wa_fcat1.

ENDFORM. "build_fcat1

&----


*& Form build_eve1

&----


  • text

----


FORM build_eve1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = eve1

EXCEPTIONS

list_type_wrong = 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. "build_eve1

&----


*& Form get_data1

&----


  • text

----


FORM get_data1.

SELECT mblnr menge meins werks FROM mseg

INTO CORRESPONDING FIELDS OF TABLE itab1

WHERE matnr = t_mat.

ENDFORM. "get_data1

&----


*& Form dis_data1

&----


  • text

----


FORM dis_data1.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = 'ZINT_ALV'

it_fieldcat = fcat1

it_events = eve1

TABLES

t_outtab = itab1

  • 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_data1

Former Member
0 Kudos

Use the ALV popup list to display you secondary list - search for function REUSE_ALVPOPUP I think - It is a selection list but you can use it in display mode without select checkboxes. Just need to define its own fieldcat, layout, events, etc and call the function.

Andrew