cancel
Showing results for 
Search instead for 
Did you mean: 

ALV Report

Former Member
0 Kudos

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

Accepted Solutions (0)

Answers (4)

Answers (4)

Former Member
0 Kudos

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

Former Member
0 Kudos

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

Former Member
0 Kudos

Use function module:

REUSE_ALV_LIST_BLOCK_APPEND

Use this following Function Module....

HOpe this helps you..!

Former Member
0 Kudos