on 01-07-2008 3:31 PM
Hi Friends,
I had data in two internal table and i want to display them in ALV , how can i do this by the use of Blocked ALV can i know the various steps which is done to display the data in Blocked ALV.
thanks
Himanshu Sharma
Hi..
You can go thru this code..
I hope this will be helpful for you in a better mananer.
Code:
----
STRUCTURE DECLARATIONS
INTERNAL TABLE DECLARATIONS
WORKAREA DECLARATIONS
TYPE-POOLS DECLARATION
----
TYPE-POOLS : slis.
TYPES : BEGIN OF st_kna1,
kunnr TYPE kna1-kunnr,
name1 TYPE kna1-name1,
ort01 TYPE kna1-ort01,
land1 TYPE kna1-land1,
stras TYPE kna1-stras,
END OF st_kna1.
TYPES : BEGIN OF st_knbk,
kunnr TYPE kna1-kunnr,
banks TYPE knbk-banks,
bankl TYPE knbk-bankl,
bankn TYPE knbk-bankn,
END OF st_knbk.
TYPES : BEGIN OF st_kunnr,
kunnr TYPE kna1-kunnr,
END OF st_kunnr.
DATA : it_kna1 TYPE STANDARD TABLE OF st_kna1,
it_knbk TYPE STANDARD TABLE OF st_knbk,
it_kunnr TYPE STANDARD TABLE OF st_kunnr,
it_kna1_fcat TYPE slis_t_fieldcat_alv,
wa_kna1_fcat LIKE LINE OF it_kna1_fcat,
it_knbk_fcat TYPE slis_t_fieldcat_alv,
wa_knbk_fcat LIKE LINE OF it_knbk_fcat,
wa_layout TYPE slis_layout_alv,
it_events TYPE slis_t_event.
DATA : v_kunnr TYPE kna1-kunnr.
----
SELECTION-SCREEN
----
SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE tit.
SELECT-OPTIONS: so_kunnr FOR v_kunnr OBLIGATORY.
SELECTION-SCREEN END OF BLOCK b.
----
INITIALIZATION
----
INITIALIZATION.
tit = text-000.
----
AT SELECTION-SCREEN ON
----
AT SELECTION-SCREEN ON so_kunnr.
PERFORM validate_kunnr.
----
START-OF-SELECTION
----
START-OF-SELECTION.
PERFORM get_customerdata.
PERFORM get_bankdata.
----
END-OF-SELECTION
----
END-OF-SELECTION.
PERFORM get_events.
PERFORM fill_layout.
PERFORM block_init.
PERFORM get_kna1_fcat.
PERFORM get_knbk_fcat.
PERFORM block_kna1_append.
PERFORM block_knbk_append.
PERFORM block_list_display.
&----
*& Form validate_kunnr
&----
FORM validate_kunnr.
SELECT kunnr
FROM kna1
INTO TABLE it_kunnr
WHERE kunnr IN so_kunnr.
IF sy-subrc NE 0.
MESSAGE e020(z50871msg) WITH 'Customer number is invalid'(001).
ENDIF.
ENDFORM. "validate_kunnr
&----
*& Form get_customerdata
&----
FORM get_customerdata .
SELECT kunnr name1 ort01 land1 stras
FROM kna1
INTO TABLE it_kna1
WHERE kunnr IN so_kunnr.
IF sy-subrc NE 0.
MESSAGE i020(z50871msg) WITH 'General data not found'(002).
ENDIF.
ENDFORM. " get_customerdata
&----
*& Form get_bankdata
&----
FORM get_bankdata .
SELECT kunnr banks bankl bankn
FROM knbk
INTO TABLE it_knbk
WHERE kunnr IN so_kunnr.
IF sy-subrc NE 0.
MESSAGE i020(z50871msg) WITH 'Bank data not found'(003).
ENDIF.
ENDFORM. " get_bankdata
*&----
*& Form block_init
*&----
FORM block_init .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_INIT'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'SET_PF_STATUS'.
I_CALLBACK_USER_COMMAND = ' '*
IT_EXCLUDING = IT_EXCLUDING*
ENDFORM. " block_init
&----
*& Form SET_PF_STATUS
&----
FORM set_pf_status USING rt_extab TYPE slis_t_extab.
SET PF-STATUS 'STANDARD'. "Copy from SALV .
ENDFORM. "SET_PF_STATUS
&----
*& Form get_kna1_fcat
&----
FORM get_kna1_fcat .
wa_kna1_fcat-fieldname = 'KUNNR'.
wa_kna1_fcat-seltext_l = 'Customer Number'(004).
APPEND wa_kna1_fcat TO it_kna1_fcat.
wa_kna1_fcat-fieldname = 'NAME1'.
wa_kna1_fcat-seltext_l = 'Customer Name'(005).
APPEND wa_kna1_fcat TO it_kna1_fcat.
wa_kna1_fcat-fieldname = 'ORT01'.
wa_kna1_fcat-seltext_l = 'City'(006).
APPEND wa_kna1_fcat TO it_kna1_fcat.
wa_kna1_fcat-fieldname = 'LAND1'.
wa_kna1_fcat-seltext_l = 'Country'(007).
APPEND wa_kna1_fcat TO it_kna1_fcat.
wa_kna1_fcat-fieldname = 'STRAS'.
wa_kna1_fcat-seltext_l = 'Street & House No.'(008).
APPEND wa_kna1_fcat TO it_kna1_fcat.
ENDFORM. " get_kna1_fcat
&----
*& Form GET_KNBK_FCAT
&----
FORM get_knbk_fcat .
wa_knbk_fcat-fieldname = 'KUNNR'.
wa_knbk_fcat-seltext_l = 'Customer Number'(004).
APPEND wa_knbk_fcat TO it_knbk_fcat.
wa_knbk_fcat-fieldname = 'BANKS'.
wa_knbk_fcat-seltext_l = 'Bank country key'(009).
APPEND wa_knbk_fcat TO it_knbk_fcat.
wa_knbk_fcat-fieldname = 'BANKL'.
wa_knbk_fcat-seltext_l = 'Bank key'(010).
APPEND wa_knbk_fcat TO it_knbk_fcat.
wa_knbk_fcat-fieldname = 'BANKN'.
wa_knbk_fcat-seltext_l = 'Bank account number'(011).
APPEND wa_knbk_fcat TO it_knbk_fcat.
ENDFORM. " GET_KNBK_FCAT
*&----
*& Form BLOCK_KNA1_APPEND
*&----
FORM block_kna1_append .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = wa_layout
it_fieldcat = it_kna1_fcat
i_tabname = 'it_kna1'
it_events = it_events[]
IT_SORT = IT_SORT*
I_TEXT = ' '*
TABLES
t_outtab = it_kna1
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. " BLOCK_KNA1_APPEND
*&----
*& Form block_knbk_append
*&----
FORM block_knbk_append .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = wa_layout
it_fieldcat = it_knbk_fcat
i_tabname = 'it_knbk'
it_events = it_events[]
IT_SORT = IT_SORT*
I_TEXT = ' '*
TABLES
t_outtab = it_knbk
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. " block_knbk_append
*&----
*& Form block_list_display
*&----
FORM block_list_display .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING*
I_INTERFACE_CHECK = ' '*
IS_PRINT = IS_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 = E_EXIT_CAUSED_BY_CALLER*
ES_EXIT_CAUSED_BY_USER = 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_display
&----
*& Form GET_EVENTS
&----
FORM get_events .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 2
IMPORTING
et_events = it_events[]
EXCEPTIONS
list_type_wrong = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " GET_EVENTS
&----
*& Form fill_layout
&----
FORM fill_layout .
wa_layout-colwidth_optimize = 'X'. "column width
wa_layout-zebra = 'X'.
wa_layout-no_hline = 'X'.
wa_layout-no_vline = 'X'.
wa_layout-cell_merge = 'X'.
wa_layout-box_fieldname = 'CHECK'.
wa_layout-box_tabname = 'IT_EKKO'.
wa_layout-window_titlebar = 'CUSTOMER DETAILS INITIAL SCREEN'.
ENDFORM. " fill_layout
Regards
sandeep
Edited by: Sandeep Reddy on Feb 18, 2008 2:56 PM
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = wa_layout
it_fieldcat = it_kna1_fcat
i_tabname = 'it_kna1'
it_events = it_events[]
IT_SORT = IT_SORT
I_TEXT = ' '
TABLES
t_outtab = it_kna1
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. " BLOCK_KNA1_APPEND
FORM block_knbk_append .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
EXPORTING
is_layout = wa_layout
it_fieldcat = it_knbk_fcat
i_tabname = 'it_knbk'
it_events = it_events[]
IT_SORT = IT_SORT
I_TEXT = ' '
TABLES
t_outtab = it_knbk
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. " block_knbk_append
&----
*& Form block_list_display
&----
FORM block_list_display .
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
IS_PRINT = IS_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 = E_EXIT_CAUSED_BY_CALLER
ES_EXIT_CAUSED_BY_USER = 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_display
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Use function module:
REUSE_ALV_LIST_BLOCK_APPEND
Use this following Function Module....
HOpe this helps you..!
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
89 | |
10 | |
10 | |
9 | |
6 | |
6 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.