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

ALV BLOCK LIST

Former Member
0 Likes
750

Dear All,

I have created a report with ALV block list.My requirement is when we

click on each column of list, detail report should be displayed.Issue

is that I could'nt get the selected the column in the block list while

selectind a row.im using the USER_COMMAND function and 'rs_selfield' as

parameter.but in 'rs_selfield' parameter 'sel_tab_field'

and 'fieldname' parameters are empty while debugging.could you please

tell me the possible reasons and remedy?

Thanks and regards,

Ajas

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
709

Hi

See the sample ALV BLOCK LIST in which User command is working fine

see this and do accordingly

REPORT YMS_BLOCKLISTALV .

TYPE-POOLS: slis. " ALV Global types

SELECTION-SCREEN :

SKIP,

BEGIN OF LINE,

COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED

PARAMETERS p_max(2) TYPE n DEFAULT '02' OBLIGATORY.

SELECTION-SCREEN END OF LINE.

DATA:

  • 1st Table

BEGIN OF gt_kna1 OCCURS 0, " Data displayed

kunnr LIKE kna1-kunnr, " Customer number

ernam LIKE kna1-ernam, " Name of Person who Created

erdat LIKE kna1-erdat, " Creation date

name1 LIKE kna1-name1, " Name 1

END OF gt_kna1,

  • 2nd Table

BEGIN OF gt_mara OCCURS 0,

ernam LIKE mara-ernam, " Name of Person who Created

matnr LIKE mara-matnr, " Material number

ersda LIKE mara-ersda, " Creation date

brgew LIKE mara-brgew, " Gross weight

END OF gt_mara,

  • 3rd Table

BEGIN OF gt_vbak OCCURS 0,

vkorg LIKE vbak-vkorg, " Sales organization

kunnr LIKE vbak-kunnr, " Sold-to party

vbeln LIKE vbak-vbeln, " Sales document

netwr LIKE vbak-netwr, " Net Value of the Sales Order

waerk LIKE vbak-waerk, " SD document currency

END OF gt_vbak.

----


INITIALIZATION.

v_1 = 'Maximum of records to read'.

----


START-OF-SELECTION.

  • Read data

SELECT * FROM kna1

UP TO p_max ROWS

INTO CORRESPONDING FIELDS OF TABLE gt_kna1.

SELECT * FROM mara

UP TO p_max ROWS

INTO CORRESPONDING FIELDS OF TABLE gt_mara.

SELECT * FROM vbak

UP TO p_max ROWS

INTO CORRESPONDING FIELDS OF TABLE gt_vbak.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = sy-cprog

i_callback_user_command = 'USER_COMMAND'.

PERFORM list_append TABLES gt_kna1

USING '1'

'GT_KNA1'.

PERFORM list_append TABLES gt_mara

USING '2'

'GT_MARA'.

PERFORM list_append TABLES gt_vbak

USING '3'

'GT_VBAK'.

PERFORM f_list_display.

----


  • FORM USER_COMMAND *

----


FORM user_command USING i_ucomm LIKE sy-ucomm

is_selfield TYPE slis_selfield. "#EC CALLED

CASE i_ucomm.

WHEN '&IC1'. " Pick

CASE is_selfield-tabname.

WHEN 'GT_MARA'.

WHEN 'GT_KNA1'.

WHEN 'GT_VBAK'.

READ TABLE gt_vbak INDEX is_selfield-tabindex.

IF sy-subrc EQ 0.

  • Sales order number

SET PARAMETER ID 'AUN' FIELD gt_vbak-vbeln.

  • Display Sales Order

CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDCASE.

ENDFORM. " USER_COMMAND

----


*/div>

  • Form list_append

----


FORM list_append TABLES ut_table

USING u_no TYPE char1

u_tabname TYPE slis_tabname.

  • Macro definition

DEFINE m_fieldcat.

ls_fieldcat-fieldname = &1.

ls_fieldcat-ref_tabname = &2.

append ls_fieldcat to lt_fieldcat.

END-OF-DEFINITION.

DEFINE m_sort.

ls_sort-fieldname = &1.

ls_sort-up = 'X'.

append ls_sort to lt_sort.

END-OF-DEFINITION.

DATA :

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog

ls_sort TYPE slis_sortinfo_alv,

lt_sort TYPE slis_t_sortinfo_alv. " Sort table

DATA:

lt_events TYPE slis_t_event,

ls_event TYPE slis_alv_event,

ls_layout TYPE slis_layout_alv.

ls_layout-group_change_edit = 'X'.

ls_layout-colwidth_optimize = 'X'.

ls_layout-zebra = 'X'.

ls_layout-detail_popup = 'X'.

ls_layout-get_selinfos = 'X'.

ls_layout-max_linesize = '200'.

CASE u_no.

WHEN '1'.

  • Build field catalog and sort table

m_fieldcat 'KUNNR' 'KNA1'.

m_fieldcat 'ERNAM' 'KNA1'.

m_fieldcat 'ERDAT' 'KNA1'.

m_fieldcat 'NAME1' 'KNA1'.

m_sort 'KUNNR'.

WHEN '2'.

m_fieldcat 'MATNR' 'MARA'.

m_fieldcat 'ERNAM' 'MARA'.

m_fieldcat 'ERSDA' 'MARA'.

m_fieldcat 'BRGEW' 'MARA'.

m_sort 'MATNR'.

WHEN '3'.

m_fieldcat 'VBELN' 'VBAK'.

m_fieldcat 'VKORG' 'VBAK'.

m_fieldcat 'KUNNR' 'VBAK'.

m_fieldcat 'NETWR' 'VBAK'.

m_fieldcat 'WAERK' 'VBAK'.

m_sort 'VBELN'.

ENDCASE.

IF u_no CA '13'.

MOVE 'TOP_OF_PAGE' TO ls_event-name.

CONCATENATE 'TOP_OF_PAGE' u_no INTO ls_event-form.

APPEND ls_event TO lt_events.

ELSE.

MOVE 'TOP_OF_LIST' TO ls_event-name.

CONCATENATE 'TOP_OF_LIST' u_no INTO ls_event-form.

APPEND ls_event TO lt_events.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

it_fieldcat = lt_fieldcat

is_layout = ls_layout

i_tabname = u_tabname

it_events = lt_events

it_sort = lt_sort

  • i_text =

TABLES

t_outtab = ut_table

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

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. " LIST_APPEND

----


  • Form f_list_display

----


FORM f_list_display.

DATA ls_print TYPE slis_print_alv.

ls_print-no_print_selinfos = 'X'. " Display no selection infos

ls_print-no_print_listinfos = 'X'. " Display no listinfos

ls_print-reserve_lines = 2. " Lines reserved for end of page

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXPORTING

i_interface_check = ' '

is_print = ls_print

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. " F_LIST_DISPLAY

----


  • FORM top_of_page1 *

----


FORM top_of_page1. "#EC CALLED

PERFORM top_of_page.

ENDFORM.

----


  • FORM top_of_page3 *

----


FORM top_of_page3. "#EC CALLED

PERFORM top_of_page.

ENDFORM.

----


  • FORM top_of_page *

----


FORM top_of_page.

ULINE.

WRITE : sy-uname, sy-title(56) CENTERED, sy-datum.

ULINE.

ENDFORM.

----


  • FORM top_of_list2 *

----


FORM top_of_list2. "#EC CALLED

WRITE 'TOP OF LIST2'.

ENDFORM.

                            • END OF PROGRAM Z_ALV_LIST_BLOCK ***********************

REPORT ZKEERTHI_ALV3 LINE-COUNT 100 .

&----


*& tables declaration

&----


tables: mara.

&----


*& type-pools declaration

&----


type-pools: slis.

&----


*& data declaration

&----


data: g_repid type sy-repid.

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV, "makt

WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.

DATA : IT_FIELDCAT2 TYPE SLIS_T_FIELDCAT_ALV, "marc

WA_FIELDCAT2 TYPE SLIS_FIELDCAT_ALV.

DATA: GT_PRINT TYPE SLIS_PRINT_ALV,

WA_LAYOUT TYPE SLIS_LAYOUT_ALV,

XS_EVENT TYPE SLIS_ALV_EVENT,

GT_XEVENTS TYPE SLIS_T_EVENT,

GT_YEVENTS TYPE SLIS_T_EVENT,

GT_ZEVENTS TYPE SLIS_T_EVENT,

WA_SORT TYPE SLIS_SORTINFO_ALV,

IT_SORT TYPE SLIS_T_SORTINFO_ALV.

DATA: BEGIN OF it_mara occurs 0,

MATNR LIKE MARA-MATNR,

MTART LIKE MARA-MTART,

MATKL LIKE MARA-MATKL,

MEINS LIKE MARA-MEINS,

NTGEW LIKE MARA-NTGEW,

END OF it_mara.

DATA: BEGIN OF IT_MAKT occurs 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

DATA: BEGIN OF IT_MARC occurs 0,

MATNR LIKE MARC-MATNR,

WERKS LIKE MARC-WERKS,

LADGR LIKE MARC-LADGR,

MTVFP LIKE MARC-MTVFP,

dispr LIKE marc-dispr,

dismm LIKE marc-dismm,

dispo LIKE marc-dispo,

END OF IT_MARC.

&----


*& initialisation

&----


initialization.

g_repid = sy-repid.

&----


*& selection screen

&----


selection-screen begin of block b with frame title text-001.

select-options: s_matnr for mara-matnr,

s_mtart for mara-mtart.

selection-screen end of block b.

&----


*& start of selection

&----


start-of-selection.

perform get_maradetails.

perform get_maktdetails.

perform get_marcdetails.

&----


*& Form get_maradetails

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_maradetails .

select matnr

mtart

matkl

meins

ntgew from mara

into table it_mara

where matnr in s_matnr and

mtart in s_mtart.

ENDFORM. " get_maradetails

&----


*& Form get_maktdetails

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_maktdetails .

select matnr

spras

maktx

maktg from makt into table it_makt

for all entries in it_mara

where matnr = it_mara-matnr..

ENDFORM. " get_maktdetails

&----


*& Form get_marcdetails

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_marcdetails .

select matnr

werks

ladgr

mtvfp

dispr

dismm

dispo from marc

into table it_marc

for all entries in it_mara

where matnr = it_mara-matnr.

ENDFORM. " get_marcdetails

&----


*& end of selection

&----


END-OF-SELECTION.

perform sort_list.

perform modify_fieldcat.

PERFORM EVENT_LIST.

PERFORM BLOCK_LIST.

&----


*& Form modify_fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_fieldcat .

clear wa_fieldcat.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-TABNAME = 'IT_MARA'.

WA_FIELDCAT-SELTEXT_L = 'MATERIAL NUM'.

WA_FIELDCAT-COL_POS = 1.

WA_FIELDCAT-OUTPUTLEN = 18.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'MTART'.

WA_FIELDCAT-TABNAME = 'IT_MARA'.

WA_FIELDCAT-SELTEXT_L = 'MAT TYPE'.

WA_FIELDCAT-COL_POS = 2.

WA_FIELDCAT-OUTPUTLEN = 5.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'MATKL'.

WA_FIELDCAT-TABNAME = 'IT_MARA'.

WA_FIELDCAT-SELTEXT_L = 'MAT GROUP'.

WA_FIELDCAT-COL_POS = 3.

WA_FIELDCAT-OUTPUTLEN = 10.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-TABNAME = 'IT_MARA'.

WA_FIELDCAT-SELTEXT_L = 'UNIT'.

WA_FIELDCAT-COL_POS = 4.

WA_FIELDCAT-OUTPUTLEN = 5.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'NTGEW'.

WA_FIELDCAT-TABNAME = 'IT_MARA'.

WA_FIELDCAT-DO_SUM = 'X'.

WA_FIELDCAT-SELTEXT_L = 'QUANTITY'.

WA_FIELDCAT-COL_POS = 5.

WA_FIELDCAT-OUTPUTLEN = 15.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'MATNR'.

WA_FIELDCAT1-TABNAME = 'IT_MAKT'.

WA_FIELDCAT1-SELTEXT_L = 'MATERIAL NUM'.

WA_FIELDCAT1-COL_POS = 1.

WA_FIELDCAT1-OUTPUTLEN = 18.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'SPRAS'.

WA_FIELDCAT1-TABNAME = 'IT_MAKT'.

WA_FIELDCAT1-SELTEXT_L = 'LANGUAGE'.

WA_FIELDCAT1-COL_POS = 2.

WA_FIELDCAT1-OUTPUTLEN = 2.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'MAKTX'.

WA_FIELDCAT1-TABNAME = 'IT_MAKT'.

WA_FIELDCAT1-SELTEXT_L = 'MAT DESC'.

WA_FIELDCAT1-COL_POS = 3.

WA_FIELDCAT1-OUTPUTLEN = 40.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'MAKTG'.

WA_FIELDCAT1-TABNAME = 'IT_MAKT'.

WA_FIELDCAT1-SELTEXT_L = 'GRP DESC'.

WA_FIELDCAT1-COL_POS = 4.

WA_FIELDCAT1-OUTPUTLEN = 40.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'MATNR'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'MATERIAL NUM'.

WA_FIELDCAT2-COL_POS = 1.

WA_FIELDCAT2-OUTPUTLEN = 18.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'WERKS'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'PLANT'.

WA_FIELDCAT2-COL_POS = 2.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'LADGR'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'LOAD GRP'.

WA_FIELDCAT2-COL_POS = 3.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'MTVFP'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'GRP CHK'.

WA_FIELDCAT2-COL_POS = 4.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'DISPR'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'MRP PROFILE'.

WA_FIELDCAT2-COL_POS = 5.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'DISMM'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'MRP TYPE'.

WA_FIELDCAT2-COL_POS = 6.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'DISPO'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'MRP CON'.

WA_FIELDCAT2-COL_POS = 7.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

ENDFORM. " modify_fieldcat

&----


*& Form BLOCK_LIST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BLOCK_LIST .

CLEAR WA_LAYOUT.

WA_LAYOUT-ZEBRA = 'X'.

WA_LAYOUT-TOTALS_TEXT = 'TOTAL'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'user_command'.

  • IT_EXCLUDING =

.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT[]

I_TABNAME = 'IT_MARA'

IT_EVENTS = GT_XEVENTS

IT_SORT = IT_SORT

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_MARA

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT1

I_TABNAME = 'IT_MAKT'

IT_EVENTS = GT_YEVENTS

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_MAKT

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT2

I_TABNAME = 'IT_MARC'

IT_EVENTS = GT_ZEVENTS

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_MARC

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

IS_PRINT = GT_PRINT

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

  • 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. " BLOCK_LIST

&----


*& Form EVENT_LIST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM EVENT_LIST .

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'XTOP_OF_PAGE'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'XEND_OF_PAGE'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'XTOP_OF_LIST'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'XEND_OF_LIST'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'YEND_OF_PAGE'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'YTOP_OF_PAGE'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'YTOP_OF_LIST'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'YEND_OF_LIST'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'ZEND_OF_PAGE'.

APPEND XS_EVENT TO GT_ZEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'ZTOP_OF_PAGE'.

APPEND XS_EVENT TO GT_ZEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'ZTOP_OF_LIST'.

APPEND XS_EVENT TO GT_ZEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'ZEND_OF_LIST'.

APPEND XS_EVENT TO GT_ZEVENTS.

CLEAR XS_EVENT.

ENDFORM. " EVENT_LIST

FORM XTOP_OF_PAGE.

WRITE:/ 'TOP OF PAGE FOR MARA'.

ENDFORM.

FORM YTOP_OF_PAGE.

WRITE:/ 'TOP OF PAGE FOR MAKT'.

ENDFORM.

FORM ZTOP_OF_PAGE.

WRITE:/ 'TOP OF PAGE FOR MARC'.

ENDFORM.

FORM XEND_OF_PAGE.

WRITE:/ 'END OF PAGE FOR MARA'.

ENDFORM.

FORM YEND_OF_PAGE.

WRITE:/ 'END OF PAGE FOR MAKT'.

ENDFORM.

FORM ZEND_OF_PAGE.

WRITE:/ 'END OF PAGE FOR MARC'.

ENDFORM.

FORM XTOP_OF_LIST.

WRITE:/ 'TOP OF LIST FOR MARA'.

ENDFORM.

FORM YTOP_OF_LIST.

WRITE:/ 'TOP OF LIST FOR MAKT'.

ENDFORM.

FORM ZTOP_OF_LIST.

WRITE:/ 'TOP OF LIST FOR MARC'.

ENDFORM.

FORM XEND_OF_LIST.

WRITE:/ 'END OF LIST FOR MARA'.

ENDFORM.

FORM YEND_OF_LIST.

WRITE:/ 'END OF LIST FOR MAKT'.

ENDFORM.

FORM ZEND_OF_LIST.

WRITE:/ 'END OF LIST FOR MARC'.

ENDFORM.

&----


*& Form sort_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sort_list .

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'MTART'.

WA_SORT-SUBTOT = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'MATKL'.

WA_SORT-SUBTOT = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

ENDFORM. " sort_list

<b>Reward points for useful Answers</b>

Regards

Anji

Dear All,

I have created a report with ALV block list.My requirement is when we

click on each column of list, detail report should be displayed.Issue

is that I could'nt get the selected the column in the block list while

selectind a row.im using the USER_COMMAND function and 'rs_selfield' as

parameter.but in 'rs_selfield' parameter 'sel_tab_field'

and 'fieldname' parameters are empty while debugging.could you please

tell me the possible reasons and remedy?

Thanks and regards,

Ajas

5 REPLIES 5
Read only

jaideeps
Product and Topic Expert
Product and Topic Expert
0 Likes
709

hi,

check out the examples in package -> SLIS

thanks

jaideep

reward points if useful..

Read only

Former Member
0 Likes
710

Hi

See the sample ALV BLOCK LIST in which User command is working fine

see this and do accordingly

REPORT YMS_BLOCKLISTALV .

TYPE-POOLS: slis. " ALV Global types

SELECTION-SCREEN :

SKIP,

BEGIN OF LINE,

COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED

PARAMETERS p_max(2) TYPE n DEFAULT '02' OBLIGATORY.

SELECTION-SCREEN END OF LINE.

DATA:

  • 1st Table

BEGIN OF gt_kna1 OCCURS 0, " Data displayed

kunnr LIKE kna1-kunnr, " Customer number

ernam LIKE kna1-ernam, " Name of Person who Created

erdat LIKE kna1-erdat, " Creation date

name1 LIKE kna1-name1, " Name 1

END OF gt_kna1,

  • 2nd Table

BEGIN OF gt_mara OCCURS 0,

ernam LIKE mara-ernam, " Name of Person who Created

matnr LIKE mara-matnr, " Material number

ersda LIKE mara-ersda, " Creation date

brgew LIKE mara-brgew, " Gross weight

END OF gt_mara,

  • 3rd Table

BEGIN OF gt_vbak OCCURS 0,

vkorg LIKE vbak-vkorg, " Sales organization

kunnr LIKE vbak-kunnr, " Sold-to party

vbeln LIKE vbak-vbeln, " Sales document

netwr LIKE vbak-netwr, " Net Value of the Sales Order

waerk LIKE vbak-waerk, " SD document currency

END OF gt_vbak.

----


INITIALIZATION.

v_1 = 'Maximum of records to read'.

----


START-OF-SELECTION.

  • Read data

SELECT * FROM kna1

UP TO p_max ROWS

INTO CORRESPONDING FIELDS OF TABLE gt_kna1.

SELECT * FROM mara

UP TO p_max ROWS

INTO CORRESPONDING FIELDS OF TABLE gt_mara.

SELECT * FROM vbak

UP TO p_max ROWS

INTO CORRESPONDING FIELDS OF TABLE gt_vbak.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

i_callback_program = sy-cprog

i_callback_user_command = 'USER_COMMAND'.

PERFORM list_append TABLES gt_kna1

USING '1'

'GT_KNA1'.

PERFORM list_append TABLES gt_mara

USING '2'

'GT_MARA'.

PERFORM list_append TABLES gt_vbak

USING '3'

'GT_VBAK'.

PERFORM f_list_display.

----


  • FORM USER_COMMAND *

----


FORM user_command USING i_ucomm LIKE sy-ucomm

is_selfield TYPE slis_selfield. "#EC CALLED

CASE i_ucomm.

WHEN '&IC1'. " Pick

CASE is_selfield-tabname.

WHEN 'GT_MARA'.

WHEN 'GT_KNA1'.

WHEN 'GT_VBAK'.

READ TABLE gt_vbak INDEX is_selfield-tabindex.

IF sy-subrc EQ 0.

  • Sales order number

SET PARAMETER ID 'AUN' FIELD gt_vbak-vbeln.

  • Display Sales Order

CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDCASE.

ENDFORM. " USER_COMMAND

----


*/div>

  • Form list_append

----


FORM list_append TABLES ut_table

USING u_no TYPE char1

u_tabname TYPE slis_tabname.

  • Macro definition

DEFINE m_fieldcat.

ls_fieldcat-fieldname = &1.

ls_fieldcat-ref_tabname = &2.

append ls_fieldcat to lt_fieldcat.

END-OF-DEFINITION.

DEFINE m_sort.

ls_sort-fieldname = &1.

ls_sort-up = 'X'.

append ls_sort to lt_sort.

END-OF-DEFINITION.

DATA :

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv, " Field catalog

ls_sort TYPE slis_sortinfo_alv,

lt_sort TYPE slis_t_sortinfo_alv. " Sort table

DATA:

lt_events TYPE slis_t_event,

ls_event TYPE slis_alv_event,

ls_layout TYPE slis_layout_alv.

ls_layout-group_change_edit = 'X'.

ls_layout-colwidth_optimize = 'X'.

ls_layout-zebra = 'X'.

ls_layout-detail_popup = 'X'.

ls_layout-get_selinfos = 'X'.

ls_layout-max_linesize = '200'.

CASE u_no.

WHEN '1'.

  • Build field catalog and sort table

m_fieldcat 'KUNNR' 'KNA1'.

m_fieldcat 'ERNAM' 'KNA1'.

m_fieldcat 'ERDAT' 'KNA1'.

m_fieldcat 'NAME1' 'KNA1'.

m_sort 'KUNNR'.

WHEN '2'.

m_fieldcat 'MATNR' 'MARA'.

m_fieldcat 'ERNAM' 'MARA'.

m_fieldcat 'ERSDA' 'MARA'.

m_fieldcat 'BRGEW' 'MARA'.

m_sort 'MATNR'.

WHEN '3'.

m_fieldcat 'VBELN' 'VBAK'.

m_fieldcat 'VKORG' 'VBAK'.

m_fieldcat 'KUNNR' 'VBAK'.

m_fieldcat 'NETWR' 'VBAK'.

m_fieldcat 'WAERK' 'VBAK'.

m_sort 'VBELN'.

ENDCASE.

IF u_no CA '13'.

MOVE 'TOP_OF_PAGE' TO ls_event-name.

CONCATENATE 'TOP_OF_PAGE' u_no INTO ls_event-form.

APPEND ls_event TO lt_events.

ELSE.

MOVE 'TOP_OF_LIST' TO ls_event-name.

CONCATENATE 'TOP_OF_LIST' u_no INTO ls_event-form.

APPEND ls_event TO lt_events.

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

it_fieldcat = lt_fieldcat

is_layout = ls_layout

i_tabname = u_tabname

it_events = lt_events

it_sort = lt_sort

  • i_text =

TABLES

t_outtab = ut_table

EXCEPTIONS

program_error = 1

maximum_of_appends_reached = 2

OTHERS = 3.

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. " LIST_APPEND

----


  • Form f_list_display

----


FORM f_list_display.

DATA ls_print TYPE slis_print_alv.

ls_print-no_print_selinfos = 'X'. " Display no selection infos

ls_print-no_print_listinfos = 'X'. " Display no listinfos

ls_print-reserve_lines = 2. " Lines reserved for end of page

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXPORTING

i_interface_check = ' '

is_print = ls_print

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. " F_LIST_DISPLAY

----


  • FORM top_of_page1 *

----


FORM top_of_page1. "#EC CALLED

PERFORM top_of_page.

ENDFORM.

----


  • FORM top_of_page3 *

----


FORM top_of_page3. "#EC CALLED

PERFORM top_of_page.

ENDFORM.

----


  • FORM top_of_page *

----


FORM top_of_page.

ULINE.

WRITE : sy-uname, sy-title(56) CENTERED, sy-datum.

ULINE.

ENDFORM.

----


  • FORM top_of_list2 *

----


FORM top_of_list2. "#EC CALLED

WRITE 'TOP OF LIST2'.

ENDFORM.

                            • END OF PROGRAM Z_ALV_LIST_BLOCK ***********************

REPORT ZKEERTHI_ALV3 LINE-COUNT 100 .

&----


*& tables declaration

&----


tables: mara.

&----


*& type-pools declaration

&----


type-pools: slis.

&----


*& data declaration

&----


data: g_repid type sy-repid.

DATA : IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV, "mara

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA : IT_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV, "makt

WA_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.

DATA : IT_FIELDCAT2 TYPE SLIS_T_FIELDCAT_ALV, "marc

WA_FIELDCAT2 TYPE SLIS_FIELDCAT_ALV.

DATA: GT_PRINT TYPE SLIS_PRINT_ALV,

WA_LAYOUT TYPE SLIS_LAYOUT_ALV,

XS_EVENT TYPE SLIS_ALV_EVENT,

GT_XEVENTS TYPE SLIS_T_EVENT,

GT_YEVENTS TYPE SLIS_T_EVENT,

GT_ZEVENTS TYPE SLIS_T_EVENT,

WA_SORT TYPE SLIS_SORTINFO_ALV,

IT_SORT TYPE SLIS_T_SORTINFO_ALV.

DATA: BEGIN OF it_mara occurs 0,

MATNR LIKE MARA-MATNR,

MTART LIKE MARA-MTART,

MATKL LIKE MARA-MATKL,

MEINS LIKE MARA-MEINS,

NTGEW LIKE MARA-NTGEW,

END OF it_mara.

DATA: BEGIN OF IT_MAKT occurs 0,

MATNR LIKE MAKT-MATNR,

SPRAS LIKE MAKT-SPRAS,

MAKTX LIKE MAKT-MAKTX,

MAKTG LIKE MAKT-MAKTG,

END OF IT_MAKT.

DATA: BEGIN OF IT_MARC occurs 0,

MATNR LIKE MARC-MATNR,

WERKS LIKE MARC-WERKS,

LADGR LIKE MARC-LADGR,

MTVFP LIKE MARC-MTVFP,

dispr LIKE marc-dispr,

dismm LIKE marc-dismm,

dispo LIKE marc-dispo,

END OF IT_MARC.

&----


*& initialisation

&----


initialization.

g_repid = sy-repid.

&----


*& selection screen

&----


selection-screen begin of block b with frame title text-001.

select-options: s_matnr for mara-matnr,

s_mtart for mara-mtart.

selection-screen end of block b.

&----


*& start of selection

&----


start-of-selection.

perform get_maradetails.

perform get_maktdetails.

perform get_marcdetails.

&----


*& Form get_maradetails

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_maradetails .

select matnr

mtart

matkl

meins

ntgew from mara

into table it_mara

where matnr in s_matnr and

mtart in s_mtart.

ENDFORM. " get_maradetails

&----


*& Form get_maktdetails

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_maktdetails .

select matnr

spras

maktx

maktg from makt into table it_makt

for all entries in it_mara

where matnr = it_mara-matnr..

ENDFORM. " get_maktdetails

&----


*& Form get_marcdetails

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM get_marcdetails .

select matnr

werks

ladgr

mtvfp

dispr

dismm

dispo from marc

into table it_marc

for all entries in it_mara

where matnr = it_mara-matnr.

ENDFORM. " get_marcdetails

&----


*& end of selection

&----


END-OF-SELECTION.

perform sort_list.

perform modify_fieldcat.

PERFORM EVENT_LIST.

PERFORM BLOCK_LIST.

&----


*& Form modify_fieldcat

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM modify_fieldcat .

clear wa_fieldcat.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-TABNAME = 'IT_MARA'.

WA_FIELDCAT-SELTEXT_L = 'MATERIAL NUM'.

WA_FIELDCAT-COL_POS = 1.

WA_FIELDCAT-OUTPUTLEN = 18.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'MTART'.

WA_FIELDCAT-TABNAME = 'IT_MARA'.

WA_FIELDCAT-SELTEXT_L = 'MAT TYPE'.

WA_FIELDCAT-COL_POS = 2.

WA_FIELDCAT-OUTPUTLEN = 5.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'MATKL'.

WA_FIELDCAT-TABNAME = 'IT_MARA'.

WA_FIELDCAT-SELTEXT_L = 'MAT GROUP'.

WA_FIELDCAT-COL_POS = 3.

WA_FIELDCAT-OUTPUTLEN = 10.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-TABNAME = 'IT_MARA'.

WA_FIELDCAT-SELTEXT_L = 'UNIT'.

WA_FIELDCAT-COL_POS = 4.

WA_FIELDCAT-OUTPUTLEN = 5.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-FIELDNAME = 'NTGEW'.

WA_FIELDCAT-TABNAME = 'IT_MARA'.

WA_FIELDCAT-DO_SUM = 'X'.

WA_FIELDCAT-SELTEXT_L = 'QUANTITY'.

WA_FIELDCAT-COL_POS = 5.

WA_FIELDCAT-OUTPUTLEN = 15.

APPEND WA_FIELDCAT TO IT_FIELDCAT.

CLEAR WA_FIELDCAT.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'MATNR'.

WA_FIELDCAT1-TABNAME = 'IT_MAKT'.

WA_FIELDCAT1-SELTEXT_L = 'MATERIAL NUM'.

WA_FIELDCAT1-COL_POS = 1.

WA_FIELDCAT1-OUTPUTLEN = 18.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'SPRAS'.

WA_FIELDCAT1-TABNAME = 'IT_MAKT'.

WA_FIELDCAT1-SELTEXT_L = 'LANGUAGE'.

WA_FIELDCAT1-COL_POS = 2.

WA_FIELDCAT1-OUTPUTLEN = 2.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'MAKTX'.

WA_FIELDCAT1-TABNAME = 'IT_MAKT'.

WA_FIELDCAT1-SELTEXT_L = 'MAT DESC'.

WA_FIELDCAT1-COL_POS = 3.

WA_FIELDCAT1-OUTPUTLEN = 40.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

WA_FIELDCAT1-FIELDNAME = 'MAKTG'.

WA_FIELDCAT1-TABNAME = 'IT_MAKT'.

WA_FIELDCAT1-SELTEXT_L = 'GRP DESC'.

WA_FIELDCAT1-COL_POS = 4.

WA_FIELDCAT1-OUTPUTLEN = 40.

APPEND WA_FIELDCAT1 TO IT_FIELDCAT1.

CLEAR WA_FIELDCAT1.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'MATNR'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'MATERIAL NUM'.

WA_FIELDCAT2-COL_POS = 1.

WA_FIELDCAT2-OUTPUTLEN = 18.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'WERKS'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'PLANT'.

WA_FIELDCAT2-COL_POS = 2.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'LADGR'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'LOAD GRP'.

WA_FIELDCAT2-COL_POS = 3.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'MTVFP'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'GRP CHK'.

WA_FIELDCAT2-COL_POS = 4.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'DISPR'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'MRP PROFILE'.

WA_FIELDCAT2-COL_POS = 5.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'DISMM'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'MRP TYPE'.

WA_FIELDCAT2-COL_POS = 6.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

WA_FIELDCAT2-FIELDNAME = 'DISPO'.

WA_FIELDCAT2-TABNAME = 'IT_MARC'.

WA_FIELDCAT2-SELTEXT_L = 'MRP CON'.

WA_FIELDCAT2-COL_POS = 7.

WA_FIELDCAT2-OUTPUTLEN = 4.

APPEND WA_FIELDCAT2 TO IT_FIELDCAT2.

CLEAR WA_FIELDCAT2.

ENDFORM. " modify_fieldcat

&----


*& Form BLOCK_LIST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BLOCK_LIST .

CLEAR WA_LAYOUT.

WA_LAYOUT-ZEBRA = 'X'.

WA_LAYOUT-TOTALS_TEXT = 'TOTAL'.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'user_command'.

  • IT_EXCLUDING =

.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT[]

I_TABNAME = 'IT_MARA'

IT_EVENTS = GT_XEVENTS

IT_SORT = IT_SORT

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_MARA

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT1

I_TABNAME = 'IT_MAKT'

IT_EVENTS = GT_YEVENTS

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_MAKT

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'

EXPORTING

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FIELDCAT2

I_TABNAME = 'IT_MARC'

IT_EVENTS = GT_ZEVENTS

  • IT_SORT =

  • I_TEXT = ' '

TABLES

T_OUTTAB = IT_MARC

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • MAXIMUM_OF_APPENDS_REACHED = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

IS_PRINT = GT_PRINT

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

  • 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. " BLOCK_LIST

&----


*& Form EVENT_LIST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM EVENT_LIST .

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'XTOP_OF_PAGE'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'XEND_OF_PAGE'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'XTOP_OF_LIST'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'XEND_OF_LIST'.

APPEND XS_EVENT TO GT_XEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'YEND_OF_PAGE'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'YTOP_OF_PAGE'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'YTOP_OF_LIST'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'YEND_OF_LIST'.

APPEND XS_EVENT TO GT_YEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_PAGE.

XS_EVENT-FORM = 'ZEND_OF_PAGE'.

APPEND XS_EVENT TO GT_ZEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.

XS_EVENT-FORM = 'ZTOP_OF_PAGE'.

APPEND XS_EVENT TO GT_ZEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_TOP_OF_LIST.

XS_EVENT-FORM = 'ZTOP_OF_LIST'.

APPEND XS_EVENT TO GT_ZEVENTS.

CLEAR XS_EVENT.

XS_EVENT-NAME = SLIS_EV_END_OF_LIST.

XS_EVENT-FORM = 'ZEND_OF_LIST'.

APPEND XS_EVENT TO GT_ZEVENTS.

CLEAR XS_EVENT.

ENDFORM. " EVENT_LIST

FORM XTOP_OF_PAGE.

WRITE:/ 'TOP OF PAGE FOR MARA'.

ENDFORM.

FORM YTOP_OF_PAGE.

WRITE:/ 'TOP OF PAGE FOR MAKT'.

ENDFORM.

FORM ZTOP_OF_PAGE.

WRITE:/ 'TOP OF PAGE FOR MARC'.

ENDFORM.

FORM XEND_OF_PAGE.

WRITE:/ 'END OF PAGE FOR MARA'.

ENDFORM.

FORM YEND_OF_PAGE.

WRITE:/ 'END OF PAGE FOR MAKT'.

ENDFORM.

FORM ZEND_OF_PAGE.

WRITE:/ 'END OF PAGE FOR MARC'.

ENDFORM.

FORM XTOP_OF_LIST.

WRITE:/ 'TOP OF LIST FOR MARA'.

ENDFORM.

FORM YTOP_OF_LIST.

WRITE:/ 'TOP OF LIST FOR MAKT'.

ENDFORM.

FORM ZTOP_OF_LIST.

WRITE:/ 'TOP OF LIST FOR MARC'.

ENDFORM.

FORM XEND_OF_LIST.

WRITE:/ 'END OF LIST FOR MARA'.

ENDFORM.

FORM YEND_OF_LIST.

WRITE:/ 'END OF LIST FOR MAKT'.

ENDFORM.

FORM ZEND_OF_LIST.

WRITE:/ 'END OF LIST FOR MARC'.

ENDFORM.

&----


*& Form sort_list

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM sort_list .

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'MTART'.

WA_SORT-SUBTOT = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

WA_SORT-FIELDNAME = 'MATKL'.

WA_SORT-SUBTOT = 'X'.

APPEND WA_SORT TO IT_SORT.

CLEAR WA_SORT.

ENDFORM. " sort_list

<b>Reward points for useful Answers</b>

Regards

Anji

Read only

Former Member
0 Likes
709

Hi

Check this sample report

*---------------------------------------------------------------------*

* Declarations for BLOCK ALV DISPLAY

*---------------------------------------------------------------------*

*--type pools

TYPE-POOLS:slis.

DATA:x_layout TYPE slis_layout_alv,

t_field TYPE slis_t_fieldcat_alv,

*--field catalog

x_fldcat LIKE LINE OF t_field,

*--to hold all the events

t_events TYPE slis_t_event,

x_events TYPE slis_alv_event,

t_sort TYPE slis_t_sortinfo_alv,

x_sort LIKE LINE OF t_sort ,

*--Print Layout

x_print_layout TYPE slis_print_alv.

 

*----Macro to add field catalog.

*field "text "length "tech "COL_POS "DATATYPE "DDIC_OUTPUTLEN

DEFINE add_catalog.

clear x_fldcat.

x_fldcat-fieldname = &1.

x_fldcat-seltext_m = &2.

x_fldcat-outputlen = &3.

x_fldcat-tech = &4.

x_fldcat-col_pos = &5.

x_fldcat-no_zero = 'X'.

x_fldcat-ddictxt = 'M'.

x_fldcat-datatype = &6.

x_fldcat-ddic_outputlen = &7.

if &6 = 'N'.

x_fldcat-lzero = 'X'.

endif.

*--build field catalog

append x_fldcat to t_field.

END-OF-DEFINITION.

 

*----- data declerations.

data: v_repid like sy-repid.

data: begin of itab occurs 0,

matnr like mara-matnr,

ernam like mara-ernam,

meins like mara-meins,

end of itab.

 

data: begin of jtab occurs 0,

matnr like makt-matnr,

maktx like makt-maktx,

end of jtab.

 

 

select matnr ernam meins

up to 20 rows

from mara

into table itab.

select matnr maktx

up to 20 rows

from makt

into table jtab.


v_repid = sy-repid.

 

*DISPLAY alv

* Initialize Block

call function 'REUSE_ALV_BLOCK_LIST_INIT'

exporting

i_callback_program = v_repid.

*Block 1:

*INITIALIZE

refresh t_field. clear t_field.

refresh t_events.

*field "text "length "tech "COL_POS "DATATYPE "DDIC_OUTPUTLEN

add_catalog:

'MATNR' 'Material' '18' '' '1' 'C' '18',

'ERNAM' 'Created By' '12' '' '2' 'C' '12',

'MEINS' 'Unit' '5' '' '3' 'C' '3'.

 

*--build table for events.

x_events-form = 'TOP_OF_LIST1'.

x_events-name = slis_ev_top_of_list.

append x_events to t_events.

 

call function 'REUSE_ALV_BLOCK_LIST_APPEND'

exporting

is_layout = x_layout

it_fieldcat = t_field

i_tabname = 'ITAB'

it_events = t_events

it_sort = t_sort

tables

t_outtab = itab

exceptions

program_error = 1

maximum_of_appends_reached = 2

others = 3.

if sy-subrc <> 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

 

 

*--BLOCK 2(SUMMARY REPORT)

*INITIALIZE

refresh t_field. clear t_field.

refresh t_events.

 

*field "text "length "tech "COL_POS "DATATYPE "DDIC_OUTPUTLEN

add_catalog:

'MATNR' 'Material' '20' '' '1' 'C' '18',

'MAKTX' 'Description' '40' '' '2' 'C' '40'.

 

*--build table for events.

x_events-form = 'TOP_OF_LIST2'.

x_events-name = slis_ev_top_of_list.

append x_events to t_events.

* Append table block.

call function 'REUSE_ALV_BLOCK_LIST_APPEND'

exporting

is_layout = x_layout

it_fieldcat = t_field

i_tabname = 'JTAB'

it_events = t_events

tables

t_outtab = jtab

exceptions

program_error = 1

maximum_of_appends_reached = 2

others = 3.

if sy-subrc <> 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

 

*--CALL FM TO DISPLAY THE BLOCK REPORT.

call function 'REUSE_ALV_BLOCK_LIST_DISPLAY'

* exporting

* is_print = x_print_layout

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.

 

 

form top_of_list1.

skip 1.

write: 10 'List 1',

/5 '--------------------'.

skip 1.

format reset.

endform.

 

form top_of_list2.

skip 1.

write: 10 'List 2',

/5 '--------------------'.

skip 1.

format reset.

endform.

Reward all helpfull answers

Regards

Pavan

Read only

Former Member
0 Likes
709

Dear experts,

Thanx for your answers.But my problem still exists.coz in my report by clicking on each column,different detail reports will be displayed as per the selected column value.i couldn't get the selected colum properly..

regards,

Ajas

Read only

0 Likes
709

Hi

Check this report it will solve ur issue

*&----------------------------------------------------------*
*  TABLES USED FOR TDS REPORT
*&----------------------------------------------------------*
.

tables : J_1IEWTCHLN,WITH_ITEM,T059Z,BSEG,LFA1,T247,J_1IMOVEND,bkpf.
*&----------------------------------------------------------*
* TABLES USED FOR TDS REPORT
*&----------------------------------------------------------*



*&----------------------------------------------------------*
* SELECTION SCREEN FOR TDS REPORT
*&----------------------------------------------------------*

PARAMETERS : COMPANY LIKE BSEG-BUKRS.
PARAMETERS : YEAR    LIKE BSEG-GJAHR.
SELECT-OPTIONS : DATE FOR J_1IEWTCHLN-J_1IEXTCHDT.
SELECT-OPTIONS : SECCODE FOR T059Z-QSCOD.


*&----------------------------------------------------------*
* END OFSELECTION SCREEN FOR TDS REPORT
*&----------------------------------------------------------*


*&----------------------------------------------------------*
* DATA DECLARATION SCREEN FOR TDS REPORT
*&----------------------------------------------------------*
type-pools: slis, abap.

DATA: V_REPID LIKE SY-REPID .

DATA : TAX1 LIKE WITH_ITEM OCCURS 0 WITH HEADER LINE,
       post_date LIKE BKPF OCCURS 0 WITH HEADER LINE,
       I_LFA1 LIKE LFA1 OCCURS 0 WITH HEADER LINE.

DATA : D LIKE J_1IEWTCHLN-J_1IEXTCHDT.

DATA : DT(2),DT1(2),FISCAL(4),MONTH1(10),MONTH2(10).
*DATA : MONTH LIKE T247 OCCURS 0 WITH HEADER LINE.

DATA : M(60).

DATA : PAN LIKE J_1IMOVEND OCCURS 0 WITH HEADER LINE.

DATA : begin of month occurs 1,
       ltx like T247-ltx,
       end of month.

DATA : BEGIN OF I_ITAB OCCURS 0,
       BELNR LIKE WITH_ITEM-BELNR,
       POST_DATE LIKE BKPF-BUDAT,
       CH_EX_NO LIKE J_1IEWTCHLN-J_1IEXTCHLN,
       CH_EX_DATE LIKE J_1IEWTCHLN-J_1IEXTCHDT,
       CH_NO LIKE J_1IEWTCHLN-J_1IEXTCHLN,
       CH_DATE LIKE J_1IEWTCHLN-J_1IEXTCHDT,
       SECTION LIKE T059Z-QSCOD,
       BASE_AMOUNT LIKE WITH_ITEM-WT_QSSHH,
       TAX_AMOUNT LIKE WITH_ITEM-WT_QBSHH,
       NAME2 LIKE LFA1-NAME2,
       NAME1(70),
       PAN LIKE J_1IMOVEND-J_1IPANNO,
  END OF I_ITAB.

TYPES: BEGIN OF ITAB_LINE,
       CLUSTR TYPE INT2,
       CLUSTD(1000) TYPE X,
 END OF ITAB_LINE.

DATA: E_ITAB TYPE TABLE OF ITAB_LINE.

DATA : CHALLAN LIKE J_1IEWTCHLN OCCURS 0 WITH HEADER LINE,
           TAX LIKE WITH_ITEM OCCURS 0 WITH HEADER LINE.

DATA SECTION LIKE T059Z OCCURS 0 WITH HEADER LINE.

DATA I_BSEG LIKE BSEG OCCURS 0 WITH HEADER LINE.

DATA : BEGIN OF ITAB OCCURS 0 ,
        DOC1 LIKE J_1IEWTCHLN-BELNR,
        FISCAL1 LIKE J_1IEWTCHLN-GJAHR,
        CH_NO1 LIKE J_1IEWTCHLN-J_1IINTCHLN,
        CH_DATE1 LIKE J_1IEWTCHLN-J_1IINTCHDT,
        CH_EX_DATE1 LIKE J_1IEWTCHLN-J_1IEXTCHDT,
        CH_EX_NO1 LIKE J_1IEWTCHLN-J_1IEXTCHLN,
        BSR1(10),
        TAX_CODE LIKE with_item-wt_withcd,
        SECTION LIKE T059Z-QSCOD,
        ASS LIKE BSEG-ZUONR,
        AMOUNT LIKE BSEG-DMBTR,
  END OF ITAB.

DATA : BEGIN OF FINAL_ITAB OCCURS 0,
        DOC LIKE J_1IEWTCHLN-BELNR,
        FISCAL LIKE J_1IEWTCHLN-GJAHR,
        TDS(10),
        SURCHARGE(10),
        ED_CESS(10),
        CH_NO LIKE J_1IEWTCHLN-J_1IINTCHLN,
        CH_DATE LIKE J_1IEWTCHLN-J_1IINTCHDT,
        CH_EX_DATE LIKE J_1IEWTCHLN-J_1IEXTCHDT,
        CH_EX_NO LIKE J_1IEWTCHLN-J_1IEXTCHLN,
        BSR(10),
        TAX_CODE LIKE with_item-wt_withcd,
        SECTION LIKE T059Z-QSCOD,
        ASS LIKE BSEG-ZUONR,
        AMOUNT LIKE BSEG-DMBTR,
  END OF FINAL_ITAB.

data: fieldcat type slis_fieldcat_alv,
      fieldcat1 type slis_fieldcat_alv ,
      sort type slis_sortinfo_alv,
      G_STATUS TYPE SLIS_FORMNAME VALUE 'STANDARD_02'.

DATA: LIST_HEADER TYPE SLIS_T_LISTHEADER.

DATA: LIST_HEADER1 TYPE SLIS_T_LISTHEADER.

data :wa_feildcat type slis_t_fieldcat_alv.

data :wa_feildcat1 type slis_t_fieldcat_alv.

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

DATA: V_EVENTS TYPE SLIS_T_EVENT,
      WA_EVENT TYPE SLIS_ALV_EVENT.

DATA: V_EVENT TYPE SLIS_T_EVENT,
      WA_EVENT1 TYPE SLIS_ALV_EVENT.



*&----------------------------------------------------------*
* END OF DATA DECLARATION SCREEN FOR TDS REPORT
*&----------------------------------------------------------*

INITIALIZATION.
V_REPID = SY-REPID.
PERFORM BUILD_FIELDCATLOG.
PERFORM EVENT_CALL.
PERFORM POPULATE_EVENT.

START-OF-SELECTION.
PERFORM DATA_RETRIEVAL.
PERFORM BUILD_LISTHEADER .
PERFORM DISPLAY_ALV_REPORT.



*&--------------------------------------------------------------------*
*& Form BUILD_FIELDCATLOG
*&--------------------------------------------------------------------*
* Fieldcatalog has all the field details from ekko
*---------------------------------------------------------------------*
FORM BUILD_FIELDCATLOG.

clear fieldcat.
fieldcat-fieldname = 'ASS'.
fieldcat-tabname = 'FINAL_ITAB'.
FIELDCAT-seltext_m = 'Cheque Number'.
fieldcat-key = 'X'.
fieldcat-emphasize = 'X'.
fieldcat-fix_column = 'X'.
FIELDCAT-NO_OUT = '0'.
append fieldcat to wa_feildcat.

clear fieldcat.
fieldcat-fieldname = 'AMOUNT'.
fieldcat-tabname = 'FINAL_ITAB'.
FIELDCAT-seltext_m = 'Total Tax Deposited'.
fieldcat-key = 'X'.
fieldcat-emphasize = 'X'.
fieldcat-fix_column = 'X'.
FIELDCAT-NO_OUT = '0'.
fieldcat-do_sum = 'X'.
append fieldcat to wa_feildcat.



clear fieldcat.
fieldcat-fieldname = 'CH_EX_NO'.
fieldcat-tabname = 'FINAL_ITAB'.
FIELDCAT-seltext_m = 'Challan Number'.
fieldcat-key = 'X'.
fieldcat-emphasize = 'X'.
fieldcat-hotspot = 'X'.
fieldcat-fix_column = 'X'.
FIELDCAT-NO_OUT = '0'.
append fieldcat to wa_feildcat.


clear fieldcat.
fieldcat-fieldname = 'CH_EX_DATE'.
fieldcat-tabname = 'FINAL_ITAB'.
FIELDCAT-seltext_m = 'Date on wich Tax Deposited'.
fieldcat-key = 'X'.
fieldcat-emphasize = ''.
fieldcat-fix_column = 'X'.
FIELDCAT-NO_OUT = '0'.
append fieldcat to wa_feildcat.

clear fieldcat.
fieldcat-fieldname = 'BSR'.
fieldcat-tabname = 'FINAL_ITAB'.
FIELDCAT-seltext_m = 'BSR Code'.
fieldcat-key = 'X'.
fieldcat-emphasize = ''.
fieldcat-fix_column = ''.
FIELDCAT-NO_OUT = 'O'.
append fieldcat to wa_feildcat.

clear fieldcat.
fieldcat-fieldname = 'SECTION'.
fieldcat-tabname = 'FINAL_ITAB'.
FIELDCAT-seltext_m = 'Section Code'.
fieldcat-key = '4'.
fieldcat-emphasize = ''.
fieldcat-fix_column = ''.
FIELDCAT-JUST = 'R'.
append fieldcat to wa_feildcat.


ENDFORM. "BUILD_FIELDCATLOG


*&--------------------------------------------------------------------*
*& Form EVENT_CALL
*&--------------------------------------------------------------------*
* we get all events - TOP OF PAGE or USER COMMAND in table v_events
*---------------------------------------------------------------------*
FORM EVENT_CALL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENTS
.
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. "EVENT_CALL

*&--------------------------------------------------------------------*
*& Form POPULATE_EVENT
*&--------------------------------------------------------------------*
* Events populated for TOP OF PAGE & USER COMAND
*---------------------------------------------------------------------*
FORM POPULATE_EVENT.
READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'TOP_OF_PAGE'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
IF SY-SUBRC EQ 0.
WA_EVENT-FORM = 'USER_COMMAND'.
MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
ENDIF.
ENDFORM. "POPULATE_EVENT


*&--------------------------------------------------------------------*
*& Form data_retrieval
*&--------------------------------------------------------------------*
* retreiving values from the database table ekko
*---------------------------------------------------------------------*
FORM DATA_RETRIEVAL.
SELECT * FROM J_1IEWTCHLN INTO TABLE CHALLAN WHERE J_1IEXTCHDT IN DATE.
SORT CHALLAN BY J_1IINTCHLN.
CLEAR CHALLAN.

IF NOT CHALLAN[] IS INITIAL.

SELECT * FROM WITH_ITEM INTO TABLE tax FOR ALL ENTRIES IN CHALLAN WHERE
J_1IINTCHLN = CHALLAN-J_1IINTCHLN AND GJAHR = CHALLAN-GJAHR.
SORT TAX BY WT_WITHCD.
CLEAR TAX.

SELECT * FROM BSEG INTO TABLE I_BSEG FOR ALL ENTRIES IN CHALLAN WHERE
BELNR = CHALLAN-BELNR AND BSCHL = '50'.
SORT I_BSEG BY BELNR.
CLEAR I_BSEG.

ENDIF.

IF NOT TAX[] IS INITIAL.

SELECT * FROM T059Z INTO TABLE SECTION FOR ALL ENTRIES IN TAX WHERE
WT_WITHCD = TAX-WT_WITHCD AND LAND1 = 'IN'.
SORT SECTION BY WT_WITHCD.

ENDIF.

LOOP AT CHALLAN.
      ITAB-DOC1 = CHALLAN-BELNR.
      ITAB-FISCAL1 = CHALLAN-GJAHR.
      ITAB-CH_NO1 = CHALLAN-J_1IINTCHLN.
      ITAB-CH_DATE1 = CHALLAN-J_1IINTCHDT.
      ITAB-CH_EX_NO1 = CHALLAN-J_1IEXTCHLN.
      ITAB-CH_EX_DATE1 = CHALLAN-J_1IEXTCHDT.
      ITAB-BSR1 = challan-bankl.
      IF ITAB-BSR1 = 'ICICI'.
      ITAB-BSR1 = '6390070'.
  ENDIF.

READ TABLE TAX WITH KEY J_1IINTCHLN = CHALLAN-J_1IINTCHLN.

IF SY-SUBRC EQ 0.
   ITAB-TAX_CODE = TAX-WT_WITHCD.
  ENDIF.

READ TABLE I_BSEG WITH KEY BELNR = CHALLAN-BELNR.

   IF SY-SUBRC EQ 0 .
     ITAB-ASS = I_BSEG-ZUONR.
    itab-amount = I_BSEG-DMBTR.
  ENDIF.
    APPEND ITAB.
    CLEAR ITAB.

ENDLOOP.

LOOP AT ITAB.
      FINAL_ITAB-DOC = ITAB-DOC1.
      FINAL_ITAB-FISCAL = ITAB-FISCAL1 .
      FINAL_ITAB-CH_NO = ITAB-CH_NO1 .
      FINAL_ITAB-CH_DATE = ITAB-CH_DATE1.
      FINAL_ITAB-CH_EX_NO = ITAB-CH_EX_NO1.
      FINAL_ITAB-CH_EX_DATE = ITAB-CH_EX_DATE1.
      FINAL_ITAB-BSR = ITAB-BSR1.
      FINAL_ITAB-TAX_CODE = ITAB-TAX_CODE.
      FINAL_ITAB-ASS = ITAB-ASS .
      FINAL_ITAB-AMOUNT = itab-amount.
      READ TABLE SECTION WITH KEY WT_WITHCD = ITAB-TAX_CODE.
      IF SY-SUBRC EQ 0.
      FINAL_ITAB-SECTION = SECTION-QSCOD.
  ENDIF.
    APPEND FINAL_ITAB.
    CLEAR FINAL_ITAB.

ENDLOOP.
*D = DATE.

SHIFT DATE BY 3 PLACES .
FISCAL = DATE.
SHIFT DATE BY 4 PLACES .
DT = DATE.
SHIFT DATE BY 8 PLACES .
DT1 = DATE.

select lTX from T247
       into table month where MNR = DT AND spras = sy-langu.

LOOP AT MONTH.

   MONTH1 = MONTH-LTX.

ENDLOOP.

select lTX from T247
       into table month where MNR = DT1 AND spras = sy-langu.

LOOP AT MONTH.
  MONTH2 = MONTH-LTX.

    CONCATENATE 'From : ' MONTH1 '-' MONTH2 '' FISCAL INTO M.

 ENDLOOP.

ENDFORM. "data_retrieval


*&--------------------------------------------------------------------*
*& Form bUild_listheader
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->I_LISTHEADEtext
*---------------------------------------------------------------------*

FORM BUILD_LISTHEADER .
DATA L_HEADER TYPE SLIS_LISTHEADER.
l_header-typ = 'H'.
l_header-info = 'TDS Deposit Report'.
APPEND L_HEADER TO LIST_HEADER.
l_header-typ = 'S'.
l_header-info = M.
APPEND L_HEADER TO LIST_HEADER.
l_header-typ = 'S'.
l_header-info = 'SMS India Pvt. Ltd.'.
APPEND L_HEADER TO LIST_HEADER.
l_header-typ = 'S'.
l_header-info = 'Udyog Vihar, Phase II'.
APPEND L_HEADER TO LIST_HEADER.
l_header-typ = 'S'.
l_header-info = 'Gurgaon'.
APPEND L_HEADER TO LIST_HEADER.
ENDFORM. "build_listheader

*&--------------------------------------------------------------------*
*& Form display_alv_report
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_repid
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_BACKGROUND_ID = 'ALV_BACKGROUND'
IT_FIELDCAT = wa_feildcat
IT_EVENTS = v_events
* IT_EVENT_EXIT =
* IS_PRINT =
TABLES
T_OUTTAB = FINAL_ITAB
.
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. "display_alv_report
*&--------------------------------------------------------------------*
*& Form top_of_page
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
form top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = list_header
I_LOGO = 'SMSLOGO'.
endform. "top_of_page



*&--------------------------------------------------------------------*
*& Form USER_COMMAND
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->R_UCOMM text
* -->, text
* -->RS_SLEFIELDtext
*---------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE
SLIS_SELFIELD.
*REFRESH FINAL_ITAB.
CASE R_UCOMM.
WHEN '&IC1'.
READ TABLE FINAL_ITAB INDEX RS_SELFIELD-TABINDEX.
IF RS_SELFIELD-TABINDEX = '0'.
EXIT.
ELSE.
EXPORT FINAL_ITAB-CH_EX_NO FINAL_ITAB-CH_NO FINAL_ITAB-CH_EX_DATE
FINAL_ITAB-SECTION M TO MEMORY ID 'ABCD'.
PERFORM BUILD_FIELDCATLOG_DETAIL.
PERFORM EVENT_CALL_DETAIL.
PERFORM POPULATE_EVENT_DETAIL.
PERFORM DATA_RETRIEVAL_DETAIL.
PERFORM BUILD_LISTHEADER_DETAIL .
PERFORM display_alv_report_detail.
ENDIF.
ENDCASE.
ENDFORM. "user_command


*&--------------------------BUILD_FIELDCATLOG_DETAIL--------------------
*--------*
*-----------------------------------------------------------------------
*--------*


FORM BUILD_FIELDCATLOG_DETAIL.

REFRESH wa_feildcat1.
clear fieldcat1.
fieldcat1-fieldname = 'BELNR'.
fieldcat1-tabname = 'I_ITAB'.
FIELDCAT1-seltext_m = 'Document Number'.
fieldcat1-key = 'X'.
fieldcat1-emphasize = 'X'.
fieldcat1-fix_column = 'X'.
FIELDCAT1-NO_OUT = '0'.
append fieldcat1 to wa_feildcat1.

clear fieldcat1.
fieldcat1-fieldname = 'POST_DATE'.
fieldcat1-tabname = 'I_ITAB'.
FIELDCAT1-seltext_m = 'Doc. Posting Date'.
fieldcat1-key = 'X'.
fieldcat1-emphasize = 'X'.
fieldcat1-fix_column = 'X'.
FIELDCAT1-NO_OUT = '0'.
append fieldcat1 to wa_feildcat1.

clear fieldcat1.
fieldcat1-fieldname = 'BASE_AMOUNT'.
fieldcat1-tabname = 'I_ITAB'.
FIELDCAT1-seltext_m = 'Total Amount'.
fieldcat1-key = 'X'.
fieldcat1-emphasize = 'X'.
fieldcat1-fix_column = 'X'.
FIELDCAT1-NO_OUT = '0'.
fieldcat1-do_sum = 'X'.
append fieldcat1 to wa_feildcat1.

clear fieldcat1.
fieldcat1-fieldname = 'TAX_AMOUNT'.
fieldcat1-tabname = 'I_ITAB'.
FIELDCAT1-seltext_m = 'Tax Amount'.
fieldcat1-key = 'X'.
fieldcat1-emphasize = 'X'.
fieldcat1-fix_column = 'X'.
FIELDCAT1-NO_OUT = '0'.
fieldcat1-do_sum = 'X'.
append fieldcat1 to wa_feildcat1.


clear fieldcat1.
fieldcat1-fieldname = 'CH_EX_NO'.
fieldcat1-tabname = 'I_ITAB'.
FIELDCAT1-seltext_m = 'Challan Number'.
fieldcat1-key = 'X'.
fieldcat1-emphasize = 'X'.
fieldcat1-hotspot = 'X'.
fieldcat1-fix_column = 'X'.
FIELDCAT1-NO_OUT = '0'.
append fieldcat1 to wa_feildcat1.


clear fieldcat1.
fieldcat1-fieldname = 'CH_EX_DATE'.
fieldcat1-tabname = 'I_ITAB'.
FIELDCAT1-seltext_m = 'Date on wich Tax Deposited'.
fieldcat1-key = 'X'.
fieldcat1-emphasize = ''.
fieldcat1-fix_column = 'X'.
FIELDCAT1-NO_OUT = '0'.
append fieldcat1 to wa_feildcat1.

clear fieldcat1.
fieldcat1-fieldname = 'NAME1'.
fieldcat1-tabname = 'I_ITAB'.
FIELDCAT1-seltext_m = 'Vendor Name'.
fieldcat1-key = 'X'.
fieldcat1-emphasize = ''.
fieldcat1-fix_column = ''.
FIELDCAT1-NO_OUT = 'O'.
append fieldcat1 to wa_feildcat1.

clear fieldcat1.
fieldcat1-fieldname = 'PAN'.
fieldcat1-tabname = 'I_ITAB'.
FIELDCAT1-seltext_m = 'Permanent Account Number'.
fieldcat1-key = 'X'.
fieldcat1-emphasize = ''.
fieldcat1-fix_column = ''.
FIELDCAT1-NO_OUT = 'O'.
append fieldcat1 to wa_feildcat1.


clear fieldcat1.
fieldcat1-fieldname = 'SECTION '.
fieldcat1-tabname = 'I_ITAB'.
FIELDCAT1-seltext_m = 'Section Code'.
fieldcat1-key = '4'.
fieldcat1-emphasize = ''.
fieldcat1-fix_column = ''.
FIELDCAT1-JUST = 'R'.
append fieldcat1 to wa_feildcat1.
ENDFORM.

*&----------------------------END BUILD_FIELDCATLOG_DETAIL-------------*


*&--------------------------------------------------------------------*
*& Form EVENT_CALL
*&--------------------------------------------------------------------*
* we get all events - TOP OF PAGE or USER COMMAND in table v_events
*---------------------------------------------------------------------*
FORM EVENT_CALL_DETAIL.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = V_EVENT
.
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. "EVENT_CALL




*&--------------------------------------------------------------------*
*& Form POPULATE_EVENT
*&--------------------------------------------------------------------*
* Events populated for TOP OF PAGE & USER COMAND
*---------------------------------------------------------------------*
FORM POPULATE_EVENT_DETAIL.
READ TABLE V_EVENT INTO WA_EVENT1 WITH KEY NAME = 'TOP_OF_PAGE'.
IF SY-SUBRC EQ 0.
WA_EVENT1-FORM = 'TOP_OF_PAGE1'.
MODIFY V_EVENT FROM WA_EVENT1 TRANSPORTING FORM WHERE NAME =
WA_EVENT1-FORM.
ENDIF.

* READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
* IF SY-SUBRC EQ 0.
* WA_EVENT-FORM = 'USER_COMMAND'.
* MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
*WA_EVENT-NAME.
* ENDIF.
ENDFORM. "POPULATE_EVENT


FORM DATA_RETRIEVAL_DETAIL.

IMPORT FINAL_ITAB-CH_EX_NO FINAL_ITAB-CH_NO FINAL_ITAB-CH_EX_DATE
FINAL_ITAB-SECTION M FROM MEMORY ID 'ABCD'.
SELECT * FROM WITH_ITEM INTO TABLE TAX1 WHERE J_1IINTCHLN =
FINAL_ITAB-CH_NO .

IF SY-SUBRC EQ 0.
ENDIF.

SORT TAX1 BY BELNR.
CLEAR TAX1.

SELECT * FROM LFA1 INTO TABLE I_LFA1 FOR ALL ENTRIES IN TAX1 WHERE LIFNR
 = TAX1-WT_ACCO.

IF SY-SUBRC EQ 0.
ENDIF.

SORT I_LFA1 BY LIFNR.
CLEAR I_LFA1.
SELECT * FROM J_1IMOVEND INTO TABLE PAN FOR ALL ENTRIES IN TAX1 WHERE
LIFNR = TAX1-WT_ACCO.

IF SY-SUBRC EQ 0.
ENDIF.

SORT PAN BY LIFNR.
CLEAR PAN.

SELECT * FROM BKPF INTO TABLE POST_DATE FOR ALL ENTRIES IN TAX1 WHERE
BELNR = TAX1-BELNR AND GJAHR = FISCAL.

IF SY-SUBRC EQ 0.
ENDIF.

SORT POST_DATE BY BELNR.
CLEAR POST_DATE.

DATA : TAX_AMOUNT(15),BASE_AMOUNT(15).
LOOP AT TAX1 .
I_ITAB-BELNR = TAX1-BELNR.
BASE_AMOUNT = TAX1-WT_QSSHH.
REPLACE '-' LENGTH 1 WITH '' INTO BASE_AMOUNT.
I_ITAB-BASE_AMOUNT = BASE_AMOUNT.
TAX_AMOUNT = TAX1-WT_QBSHH.
REPLACE '-' LENGTH 1 WITH '' INTO TAX_AMOUNT.
I_ITAB-TAX_AMOUNT = TAX_AMOUNT.
READ TABLE FINAL_ITAB WITH KEY CH_NO = TAX1-J_1IINTCHLN .
I_ITAB-CH_EX_NO = FINAL_ITAB-CH_EX_NO.
I_ITAB-CH_EX_DATE = FINAL_ITAB-CH_EX_DATE.
I_ITAB-SECTION = FINAL_ITAB-SECTION.

READ TABLE I_LFA1 WITH KEY LIFNR = TAX1-WT_ACCO.

IF SY-SUBRC EQ 0.
I_ITAB-NAME2 = I_LFA1-NAME2.
I_ITAB-NAME1 = I_LFA1-NAME1.
CONCATENATE I_ITAB-NAME1 I_ITAB-NAME2 INTO I_ITAB-NAME1 separated BY ' '
.
ENDIF.

READ TABLE PAN WITH KEY LIFNR = TAX1-WT_ACCO.

IF SY-SUBRC EQ 0.
I_ITAB-PAN = PAN-J_1IPANNO.
ENDIF.

READ TABLE POST_DATE WITH KEY BELNR = TAX1-BELNR.

IF SY-SUBRC EQ 0.
I_ITAB-POST_DATE = POST_DATE-BUDAT.
ENDIF.
APPEND I_ITAB.
CLEAR I_ITAB.
CLEAR TAX_AMOUNT.
CLEAR BASE_AMOUNT.
ENDLOOP.


ENDFORM.



*&--------------------------------------------------------------------*
*& Form bUild_listheader
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->I_LISTHEADEtext
*---------------------------------------------------------------------*
FORM BUILD_LISTHEADER_DETAIL .
REFRESH LIST_HEADER1.
DATA L_HEADER1 TYPE SLIS_LISTHEADER.
l_header1-typ = 'H'.
l_header1-info = 'Annexure per challan'.
APPEND L_HEADER1 TO LIST_HEADER1.
l_header1-typ = 'S'.
l_header1-info = M.
APPEND L_HEADER1 TO list_header1.
l_header1-typ = 'S'.
l_header1-info = 'SMS India Pvt. Ltd.'.
APPEND L_HEADER1 TO list_header1.
l_header1-typ = 'S'.
l_header1-info = 'Udyog Vihar, Phase II'.
APPEND L_HEADER1 TO LIST_HEADER1.
l_header1-typ = 'S'.
l_header1-info = 'Gurgaon'.
APPEND L_HEADER1 TO LIST_HEADER1.
ENDFORM. "build_listheader


*&--------------------------------------------------------------------*
*& Form display_alv_report
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT_DETAIL.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_repid
* I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND'
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE1'
I_BACKGROUND_ID = 'ALV_BACKGROUND'
IT_FIELDCAT = wa_feildcat1
IT_EVENTS = v_event
* IT_EVENT_EXIT =
* IS_PRINT =
TABLES
T_OUTTAB = I_ITAB
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
REFRESH I_ITAB.
ENDFORM. "display_alv_report


*&--------------------------------------------------------------------*
*& Form top_of_page
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
form top_of_page1.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = list_header1
I_LOGO = 'SMSLOGO'.
endform. "top_of_page1 

Reward all helpfull answers

Regards

Pavan