2007 Jul 21 6:16 AM
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
2007 Jul 21 7:38 AM
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
2007 Jul 21 7:01 AM
hi,
check out the examples in package -> SLIS
thanks
jaideep
reward points if useful..
2007 Jul 21 7:38 AM
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
2007 Jul 23 7:25 AM
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
2007 Aug 03 10:34 AM
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
2007 Aug 03 10:42 AM
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
| User | Count |
|---|---|
| 4 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |