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

Former Member
0 Likes
667

how to prepare an alv detailed list?pls reply asap.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
629

This ALV program have all the things with detailed report requirements such as page heading, page no, sub-total and a grand total.

  • This is a detailed list ALV with the followings:-

  • - Page Heading

  • - Page No

  • - Sub-Total

  • - Grand Total


REPORT ZALV.

TYPE-POOLS: SLIS.

DATA: G_REPID LIKE SY-REPID,
GS_PRINT TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS TYPE SLIS_T_EVENT,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,
COL_POS TYPE I.

DATA: BEGIN OF ITAB,
FIELD1(5) TYPE C,
FIELD2(5) TYPE C,
FIELD3(5) TYPE P DECIMALS 2,
END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB1.

DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB_FIELDCAT.

    * Print Parameters

PARAMETERS:
P_PRINT AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE
P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO
P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE
P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE
P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO
P_RESERV TYPE I. "NO OF FOOTER LINE

INITIALIZATION.
G_REPID = SY-REPID.
PERFORM PRINT_BUILD USING GS_PRINT. "Print PARAMETERS

START-OF-SELECTION.

    * TEST DATA

MOVE 'TEST1' TO ITAB1-FIELD1.
MOVE 'TEST1' TO ITAB1-FIELD2.
MOVE '10.00' TO ITAB1-FIELD3.
APPEND ITAB1.

MOVE 'TEST2' TO ITAB1-FIELD1.
MOVE 'TEST2' TO ITAB1-FIELD2.
MOVE '20.00' TO ITAB1-FIELD3.
APPEND ITAB1.

DO 50 TIMES.
APPEND ITAB1.
ENDDO.

END-OF-SELECTION.

PERFORM BUILD.
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.
PERFORM COMMENT_BUILD CHANGING GT_LIST_TOP_OF_PAGE.
PERFORM CALL_ALV.

FORM BUILD.

    * DATA FIELD CATALOG
    * Explain Field Description to ALV

DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.

CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD1'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
*FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT
FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY
FIELDCAT_LN-NO_OUT = ' '.
FIELDCAT_LN-SELTEXT_L = 'HEAD1'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD2'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
FIELDCAT_LN-NO_OUT = 'X'.
FIELDCAT_LN-SELTEXT_L = 'HEAD2'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD3'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY
FIELDCAT_LN-REF_TABNAME = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY
FIELDCAT_LN-NO_OUT = ' '.
FIELDCAT_LN-DO_SUM = 'X'. "SUM UPON DISPLAY
APPEND FIELDCAT_LN TO GT_FIELDCAT.

    * DATA SORTING AND SUBTOTAL

DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.

CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD1'.
GS_SORT-SPOS = 1.
GS_SORT-UP = 'X'.
GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.

CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD2'.
GS_SORT-SPOS = 2.
GS_SORT-UP = 'X'.
*GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.

ENDFORM.

FORM CALL_ALV.

    * ABAP List Viewer

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING

    * I_INTERFACE_CHECK = ' '
    * I_BYPASSING_BUFFER =
    * I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

    * I_CALLBACK_PF_STATUS_SET = ' '
    * I_CALLBACK_USER_COMMAND = ' '

I_STRUCTURE_NAME = 'ITAB1'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]

    * IT_EXCLUDING =
    * IT_SPECIAL_GROUPS =

IT_SORT = GT_SORT[]

    * IT_FILTER =
    * IS_SEL_HIDE =
    * I_DEFAULT = 'X'
    * I_SAVE = ' '
    * IS_VARIANT =

IT_EVENTS = GT_EVENTS[]

    * IT_EVENT_EXIT =

IS_PRINT = GS_PRINT

    * IS_REPREP_ID =
    * 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 =

TABLES
T_OUTTAB = ITAB1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.

    * HEADER FORM

FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.

DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.

READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.

    * define END_OF_PAGE event
    * READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
    * INTO LS_EVENT.
    * IF SY-SUBRC = 0.
    * MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
    * APPEND LS_EVENT TO LT_EVENTS.
    * ENDIF.

ENDFORM.

FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: GS_LINE TYPE SLIS_LISTHEADER.

CLEAR GS_LINE.
GS_LINE-TYP = 'H'.
GS_LINE-INFO = 'HEADER 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.

CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-KEY = 'STATUS 1'.
GS_LINE-INFO = 'INFO 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
GS_LINE-KEY = 'STATUS 2'.
GS_LINE-INFO = 'INFO 2'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.

    * CLEAR GS_LINE.
    * GS_LINE-TYP = 'A'.
    *
    * GS_LINE-INFO = 'ACTION'.
    * APPEND GS_LINE TO GT_TOP_OF_PAGE.


ENDFORM.

FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.
ENDFORM.

FORM END_OF_PAGE.
WRITE at (sy-linsz) sy-pagno CENTERED.
ENDFORM.

    * PRINT SETTINGS

FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV.
LS_PRINT-PRINT = P_PRINT. "PRINT IMMEDIATE
LS_PRINT-NO_PRINT_SELINFOS = P_NOSINF. "NO SELECTION INFO
LS_PRINT-NO_COVERPAGE = P_NOCOVE. "NO COVER PAGE
LS_PRINT-NO_NEW_PAGE = P_NONEWP.
LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO
LS_PRINT-RESERVE_LINES = P_RESERV.
ENDFORM.

*END OF ZALV PROGRAM

or if u r asking for tree list,then here is the example :


REPORT Ztree_TEST_PGM.

Type-pools : fibs,stree.

data : t_node type snodetext.

data : node_tab like t_node occurs 0 with header line.

clear : node_tab, node_tab[].

node_tab-type = 'T'.
node_tab-name = 'Earth'.
node_tab-tlevel = '01'.
node_tab-nlength = '5'.
node_tab-color = '4'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 3.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'Europe'.
node_tab-tlevel = '02'.
node_tab-nlength = '6'.
node_tab-color = '1'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 4.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'Germany'.
node_tab-tlevel = '03'.
node_tab-nlength = '7'.
node_tab-color = '4'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 4.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'Berlin'.
node_tab-tlevel = '04'.
node_tab-nlength = '6'.
node_tab-color = '4'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 3.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'Asia'.
node_tab-tlevel = '02'.
node_tab-nlength = '4'.
node_tab-color = '1'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 3.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'India'.
node_tab-tlevel = '03-'.
node_tab-nlength = '5'.
node_tab-color = '1'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 3.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'Bombay'.
node_tab-tlevel = '04-'.
node_tab-nlength = '6'.
node_tab-color = '1'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 3.
append node_tab.
clear node_tab.

CALL FUNCTION 'RS_TREE_CONSTRUCT'

    * EXPORTING
    * INSERT_ID = '000000'
    * RELATIONSHIP = ' '
    * LOG =

TABLES
NODETAB = node_tab

    * EXCEPTIONS
    * TREE_FAILURE = 1
    * ID_NOT_FOUND = 2
    * WRONG_RELATIONSHIP = 3
    * OTHERS = 4

.
IF SY-SUBRC 0.

    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

DATA: type_mapping TYPE stree_ctl_type_mapping_tab.
DATA: wa_type TYPE stree_ctl_type_mapping.
CLEAR: type_mapping[].

wa_type-type = 'A'.
wa_type-icon = '@BL@'.
APPEND wa_type TO type_mapping.

*CALL FUNCTION 'RS_TREE_CONTROL_PREPARE'

    * EXPORTING
          o CONTROL_PATTERN = STREE_CTL_GENERIC
    * CONTROL_PATTERN = 'PH'

*

    *
          o HIERARCHY_HEADER =
          o INITIAL_HEADER_WIDTH =
          o LIST_ITEM_HEADER =
    * MULTIPLE_SELECTION = 'X'
          o ITEM_SELECTION = STREE_FALSE
          o SUPPRESS_NODE_ICON = STREE_FALSE
          o SUPPRESS_FOLDER_ICON = STREE_FALSE
          o CALLBACK_PROGRAM =
          o CALLBACK_ITEM_DISPLAY =
          o COLOR_MAPPING =
    * TYPE_MAPPING = type_mapping
          o IMPORTING
          o SUBSCREEN_PROGRAM =
          o SUBSCREEN_DYNNR =
          o EXCEPTIONS
          o NOT_AVAILABLE = 1
          o OTHERS = 2
    * .

*IF SY-SUBRC 0.

    *
          o MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          o WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*ENDIF.
*

*CALL FUNCTION 'RS_TREE_SET_CURRENT_LAYOUT'

    *
          o EXPORTING
          o CURSOR_COLUMN = 3
          o CURSOR_LINE = 2
          o FIRST_NODE = 1
          o FIRST_NODE_TYPE = ' '
          o LIST_COLUMN = 1
          o LIST_LINE = 1
          o LAYOUT_MODE = STREE_LAYOUT_NORMAL
          o IMPORTING
          o INCONSISTENT_LAYOUT =
          o TABLES
          o LAYOUT =
    * .


CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
EXPORTING

    * CALLBACK_PROGRAM =
    * CALLBACK_USER_COMMAND =
    * CALLBACK_TEXT_DISPLAY =
    * CALLBACK_MOREINFO_DISPLAY =
    * CALLBACK_COLOR_DISPLAY =
    * CALLBACK_TOP_OF_PAGE =
    * CALLBACK_GUI_STATUS =
    * CALLBACK_CONTEXT_MENU =
    * STATUS = 'IMPLICIT'
    * CHECK_DUPLICATE_NAME = '1'
    * COLOR_OF_NODE = '4'
    * COLOR_OF_MARK = '3'
    * COLOR_OF_LINK = '1'
    * COLOR_OF_MATCH = '5'
    * LOWER_CASE_SENSITIVE = ' '
    * MODIFICATION_LOG = ' '
    * NODE_LENGTH = 30
    * TEXT_LENGTH = 75
    * TEXT_LENGTH1 = 0
    * TEXT_LENGTH2 = 0
    * RETURN_MARKED_SUBTREE = ' '
    * SCREEN_START_COLUMN = 0
    * SCREEN_START_LINE = 0
    * SCREEN_END_COLUMN = 0
    * SCREEN_END_LINE = 0
    * SUPPRESS_NODE_OUTPUT = ' '
    * LAYOUT_MODE = ' '
    * USE_CONTROL = STREE_USE_LIST

USE_CONTROL = 'L'.

    * IMPORTING
    * F15 =

**********end of program .
A list of other function modules that can also be used to construct tree reports:
SEUT, Hierarchy framework
RS_TREE_ADD_NODE Insert nodes
RS_TREE_AUTOMATIC_REFRESH
RS_TREE_COMPRESS Hide subtree(s)
RS_TREE_CONSTRUCT Construct new hierarchy or insert subtree
RS_TREE_CONTROL_PREPARE
RS_TREE_CREATE Create hierarchy
RS_TREE_DELETE_NODE Delete node with associated sub-tree
RS_TREE_EXPAND Expand subtree
RS_TREE_GET_CURRENT_LAYOUT Get layout information for displayed hierarchy
RS_TREE_GET_CURRENT_NODE Get node at which cursor is positioned
RS_TREE_GET_CURRENT_ROOT Get current root node
RS_TREE_GET_CURRENT_TREE Get structure information for displayed hierarchy
RS_TREE_GET_INPUT Get entires from input fields
RS_TREE_GET_MARKED_NODES Get selected nodes
RS_TREE_GET_MODIFICATION_LOG Get change log for hierarchy
RS_TREE_GET_NODE Get nodes for specified ID
RS_TREE_GET_NODE_BY_NAME Get node for specified node name
RS_TREE_GET_PREDECESSOR Get preceding node
RS_TREE_GET_SEARCHSTRING Get last search strinng
RS_TREE_LIST Simulate hierarchy or subtree display
RS_TREE_LIST_DISPLAY Display hierarchy
RS_TREE_LIST_DISPLAY Display hierarchy
RS_TREE_MODIFY_NODE
RS_TREE_MOVE Reassign node with subtree
RS_TREE_POP Get hierarchy from the stack and restore
RS_TREE_PUSH Place hierarchy on the stack
RS_TREE_RESET_LOCK Deselect node
RS_TREE_SET_CURRENT_LAYOUT Set layout with marked cursor position
RS_TREE_SET_CURRENT_TREE Set other hierarchy
RS_TREE_SET_LOCK Select node
RS_TREE_SET_NODE Change Nodes
RS_TREE_SET_SCROLL_POS Position node at the beginning of the page
RS_TREE_SLEEP
RS_TREE_SORT_CHILDREN

4 REPLIES 4
Read only

Former Member
0 Likes
630

This ALV program have all the things with detailed report requirements such as page heading, page no, sub-total and a grand total.

  • This is a detailed list ALV with the followings:-

  • - Page Heading

  • - Page No

  • - Sub-Total

  • - Grand Total


REPORT ZALV.

TYPE-POOLS: SLIS.

DATA: G_REPID LIKE SY-REPID,
GS_PRINT TYPE SLIS_PRINT_ALV,
GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,
GT_EVENTS TYPE SLIS_T_EVENT,
GT_SORT TYPE SLIS_T_SORTINFO_ALV,
GS_LAYOUT TYPE SLIS_LAYOUT_ALV,
GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,
COL_POS TYPE I.

DATA: BEGIN OF ITAB,
FIELD1(5) TYPE C,
FIELD2(5) TYPE C,
FIELD3(5) TYPE P DECIMALS 2,
END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB1.

DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.
INCLUDE STRUCTURE ITAB.
DATA: END OF ITAB_FIELDCAT.

    * Print Parameters

PARAMETERS:
P_PRINT AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE
P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO
P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE
P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE
P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO
P_RESERV TYPE I. "NO OF FOOTER LINE

INITIALIZATION.
G_REPID = SY-REPID.
PERFORM PRINT_BUILD USING GS_PRINT. "Print PARAMETERS

START-OF-SELECTION.

    * TEST DATA

MOVE 'TEST1' TO ITAB1-FIELD1.
MOVE 'TEST1' TO ITAB1-FIELD2.
MOVE '10.00' TO ITAB1-FIELD3.
APPEND ITAB1.

MOVE 'TEST2' TO ITAB1-FIELD1.
MOVE 'TEST2' TO ITAB1-FIELD2.
MOVE '20.00' TO ITAB1-FIELD3.
APPEND ITAB1.

DO 50 TIMES.
APPEND ITAB1.
ENDDO.

END-OF-SELECTION.

PERFORM BUILD.
PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.
PERFORM COMMENT_BUILD CHANGING GT_LIST_TOP_OF_PAGE.
PERFORM CALL_ALV.

FORM BUILD.

    * DATA FIELD CATALOG
    * Explain Field Description to ALV

DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.

CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD1'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
*FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT
FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY
FIELDCAT_LN-NO_OUT = ' '.
FIELDCAT_LN-SELTEXT_L = 'HEAD1'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD2'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
FIELDCAT_LN-NO_OUT = 'X'.
FIELDCAT_LN-SELTEXT_L = 'HEAD2'.
APPEND FIELDCAT_LN TO GT_FIELDCAT.

CLEAR FIELDCAT_IN.
FIELDCAT_LN-FIELDNAME = 'FIELD3'.
FIELDCAT_LN-TABNAME = 'ITAB1'.
FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY
FIELDCAT_LN-REF_TABNAME = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY
FIELDCAT_LN-NO_OUT = ' '.
FIELDCAT_LN-DO_SUM = 'X'. "SUM UPON DISPLAY
APPEND FIELDCAT_LN TO GT_FIELDCAT.

    * DATA SORTING AND SUBTOTAL

DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.

CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD1'.
GS_SORT-SPOS = 1.
GS_SORT-UP = 'X'.
GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.

CLEAR GS_SORT.
GS_SORT-FIELDNAME = 'FIELD2'.
GS_SORT-SPOS = 2.
GS_SORT-UP = 'X'.
*GS_SORT-SUBTOT = 'X'.
APPEND GS_SORT TO GT_SORT.

ENDFORM.

FORM CALL_ALV.

    * ABAP List Viewer

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING

    * I_INTERFACE_CHECK = ' '
    * I_BYPASSING_BUFFER =
    * I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

    * I_CALLBACK_PF_STATUS_SET = ' '
    * I_CALLBACK_USER_COMMAND = ' '

I_STRUCTURE_NAME = 'ITAB1'
IS_LAYOUT = GS_LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]

    * IT_EXCLUDING =
    * IT_SPECIAL_GROUPS =

IT_SORT = GT_SORT[]

    * IT_FILTER =
    * IS_SEL_HIDE =
    * I_DEFAULT = 'X'
    * I_SAVE = ' '
    * IS_VARIANT =

IT_EVENTS = GT_EVENTS[]

    * IT_EVENT_EXIT =

IS_PRINT = GS_PRINT

    * IS_REPREP_ID =
    * 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 =

TABLES
T_OUTTAB = ITAB1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
ENDFORM.

    * HEADER FORM

FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.
CONSTANTS:
GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.
*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.

DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = LT_EVENTS.

READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO LS_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.
APPEND LS_EVENT TO LT_EVENTS.
ENDIF.

    * define END_OF_PAGE event
    * READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE
    * INTO LS_EVENT.
    * IF SY-SUBRC = 0.
    * MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.
    * APPEND LS_EVENT TO LT_EVENTS.
    * ENDIF.

ENDFORM.

FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.
DATA: GS_LINE TYPE SLIS_LISTHEADER.

CLEAR GS_LINE.
GS_LINE-TYP = 'H'.
GS_LINE-INFO = 'HEADER 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.

CLEAR GS_LINE.
GS_LINE-TYP = 'S'.
GS_LINE-KEY = 'STATUS 1'.
GS_LINE-INFO = 'INFO 1'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.
GS_LINE-KEY = 'STATUS 2'.
GS_LINE-INFO = 'INFO 2'.
APPEND GS_LINE TO GT_TOP_OF_PAGE.

    * CLEAR GS_LINE.
    * GS_LINE-TYP = 'A'.
    *
    * GS_LINE-INFO = 'ACTION'.
    * APPEND GS_LINE TO GT_TOP_OF_PAGE.


ENDFORM.

FORM TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.
WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.
ENDFORM.

FORM END_OF_PAGE.
WRITE at (sy-linsz) sy-pagno CENTERED.
ENDFORM.

    * PRINT SETTINGS

FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV.
LS_PRINT-PRINT = P_PRINT. "PRINT IMMEDIATE
LS_PRINT-NO_PRINT_SELINFOS = P_NOSINF. "NO SELECTION INFO
LS_PRINT-NO_COVERPAGE = P_NOCOVE. "NO COVER PAGE
LS_PRINT-NO_NEW_PAGE = P_NONEWP.
LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO
LS_PRINT-RESERVE_LINES = P_RESERV.
ENDFORM.

*END OF ZALV PROGRAM

or if u r asking for tree list,then here is the example :


REPORT Ztree_TEST_PGM.

Type-pools : fibs,stree.

data : t_node type snodetext.

data : node_tab like t_node occurs 0 with header line.

clear : node_tab, node_tab[].

node_tab-type = 'T'.
node_tab-name = 'Earth'.
node_tab-tlevel = '01'.
node_tab-nlength = '5'.
node_tab-color = '4'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 3.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'Europe'.
node_tab-tlevel = '02'.
node_tab-nlength = '6'.
node_tab-color = '1'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 4.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'Germany'.
node_tab-tlevel = '03'.
node_tab-nlength = '7'.
node_tab-color = '4'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 4.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'Berlin'.
node_tab-tlevel = '04'.
node_tab-nlength = '6'.
node_tab-color = '4'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 3.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'Asia'.
node_tab-tlevel = '02'.
node_tab-nlength = '4'.
node_tab-color = '1'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 3.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'India'.
node_tab-tlevel = '03-'.
node_tab-nlength = '5'.
node_tab-color = '1'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 3.
append node_tab.
clear node_tab.

node_tab-type = 'P'.
node_tab-name = 'Bombay'.
node_tab-tlevel = '04-'.
node_tab-nlength = '6'.
node_tab-color = '1'.
node_tab-text = 'Hello'.
node_tab-tlength ='5'.
node_tab-tcolor = 3.
append node_tab.
clear node_tab.

CALL FUNCTION 'RS_TREE_CONSTRUCT'

    * EXPORTING
    * INSERT_ID = '000000'
    * RELATIONSHIP = ' '
    * LOG =

TABLES
NODETAB = node_tab

    * EXCEPTIONS
    * TREE_FAILURE = 1
    * ID_NOT_FOUND = 2
    * WRONG_RELATIONSHIP = 3
    * OTHERS = 4

.
IF SY-SUBRC 0.

    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

DATA: type_mapping TYPE stree_ctl_type_mapping_tab.
DATA: wa_type TYPE stree_ctl_type_mapping.
CLEAR: type_mapping[].

wa_type-type = 'A'.
wa_type-icon = '@BL@'.
APPEND wa_type TO type_mapping.

*CALL FUNCTION 'RS_TREE_CONTROL_PREPARE'

    * EXPORTING
          o CONTROL_PATTERN = STREE_CTL_GENERIC
    * CONTROL_PATTERN = 'PH'

*

    *
          o HIERARCHY_HEADER =
          o INITIAL_HEADER_WIDTH =
          o LIST_ITEM_HEADER =
    * MULTIPLE_SELECTION = 'X'
          o ITEM_SELECTION = STREE_FALSE
          o SUPPRESS_NODE_ICON = STREE_FALSE
          o SUPPRESS_FOLDER_ICON = STREE_FALSE
          o CALLBACK_PROGRAM =
          o CALLBACK_ITEM_DISPLAY =
          o COLOR_MAPPING =
    * TYPE_MAPPING = type_mapping
          o IMPORTING
          o SUBSCREEN_PROGRAM =
          o SUBSCREEN_DYNNR =
          o EXCEPTIONS
          o NOT_AVAILABLE = 1
          o OTHERS = 2
    * .

*IF SY-SUBRC 0.

    *
          o MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          o WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

*ENDIF.
*

*CALL FUNCTION 'RS_TREE_SET_CURRENT_LAYOUT'

    *
          o EXPORTING
          o CURSOR_COLUMN = 3
          o CURSOR_LINE = 2
          o FIRST_NODE = 1
          o FIRST_NODE_TYPE = ' '
          o LIST_COLUMN = 1
          o LIST_LINE = 1
          o LAYOUT_MODE = STREE_LAYOUT_NORMAL
          o IMPORTING
          o INCONSISTENT_LAYOUT =
          o TABLES
          o LAYOUT =
    * .


CALL FUNCTION 'RS_TREE_LIST_DISPLAY'
EXPORTING

    * CALLBACK_PROGRAM =
    * CALLBACK_USER_COMMAND =
    * CALLBACK_TEXT_DISPLAY =
    * CALLBACK_MOREINFO_DISPLAY =
    * CALLBACK_COLOR_DISPLAY =
    * CALLBACK_TOP_OF_PAGE =
    * CALLBACK_GUI_STATUS =
    * CALLBACK_CONTEXT_MENU =
    * STATUS = 'IMPLICIT'
    * CHECK_DUPLICATE_NAME = '1'
    * COLOR_OF_NODE = '4'
    * COLOR_OF_MARK = '3'
    * COLOR_OF_LINK = '1'
    * COLOR_OF_MATCH = '5'
    * LOWER_CASE_SENSITIVE = ' '
    * MODIFICATION_LOG = ' '
    * NODE_LENGTH = 30
    * TEXT_LENGTH = 75
    * TEXT_LENGTH1 = 0
    * TEXT_LENGTH2 = 0
    * RETURN_MARKED_SUBTREE = ' '
    * SCREEN_START_COLUMN = 0
    * SCREEN_START_LINE = 0
    * SCREEN_END_COLUMN = 0
    * SCREEN_END_LINE = 0
    * SUPPRESS_NODE_OUTPUT = ' '
    * LAYOUT_MODE = ' '
    * USE_CONTROL = STREE_USE_LIST

USE_CONTROL = 'L'.

    * IMPORTING
    * F15 =

**********end of program .
A list of other function modules that can also be used to construct tree reports:
SEUT, Hierarchy framework
RS_TREE_ADD_NODE Insert nodes
RS_TREE_AUTOMATIC_REFRESH
RS_TREE_COMPRESS Hide subtree(s)
RS_TREE_CONSTRUCT Construct new hierarchy or insert subtree
RS_TREE_CONTROL_PREPARE
RS_TREE_CREATE Create hierarchy
RS_TREE_DELETE_NODE Delete node with associated sub-tree
RS_TREE_EXPAND Expand subtree
RS_TREE_GET_CURRENT_LAYOUT Get layout information for displayed hierarchy
RS_TREE_GET_CURRENT_NODE Get node at which cursor is positioned
RS_TREE_GET_CURRENT_ROOT Get current root node
RS_TREE_GET_CURRENT_TREE Get structure information for displayed hierarchy
RS_TREE_GET_INPUT Get entires from input fields
RS_TREE_GET_MARKED_NODES Get selected nodes
RS_TREE_GET_MODIFICATION_LOG Get change log for hierarchy
RS_TREE_GET_NODE Get nodes for specified ID
RS_TREE_GET_NODE_BY_NAME Get node for specified node name
RS_TREE_GET_PREDECESSOR Get preceding node
RS_TREE_GET_SEARCHSTRING Get last search strinng
RS_TREE_LIST Simulate hierarchy or subtree display
RS_TREE_LIST_DISPLAY Display hierarchy
RS_TREE_LIST_DISPLAY Display hierarchy
RS_TREE_MODIFY_NODE
RS_TREE_MOVE Reassign node with subtree
RS_TREE_POP Get hierarchy from the stack and restore
RS_TREE_PUSH Place hierarchy on the stack
RS_TREE_RESET_LOCK Deselect node
RS_TREE_SET_CURRENT_LAYOUT Set layout with marked cursor position
RS_TREE_SET_CURRENT_TREE Set other hierarchy
RS_TREE_SET_LOCK Select node
RS_TREE_SET_NODE Change Nodes
RS_TREE_SET_SCROLL_POS Position node at the beginning of the page
RS_TREE_SLEEP
RS_TREE_SORT_CHILDREN

Read only

sivasatyaprasad_yerra
Product and Topic Expert
Product and Topic Expert
0 Likes
629

Hi,

Check the programs under SLIS package. So many examples to use ALV's.

Regards,

Siva.

Read only

Former Member
0 Likes
629

hi

go to this links ur problem get solved

http://www.sapfans.com/forums/viewtopic.php?t=58286

http://www.sapfans.com/forums/viewtopic.php?t=76490

http://www.sapfans.com/forums/viewtopic.php?t=20591

http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.

2. How do I program double click in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

3. How do I add subtotals (I have problem to add them)...

http://www.sapfans.com/forums/viewtopic.php?t=20386

http://www.sapfans.com/forums/viewtopic.php?t=85191

http://www.sapfans.com/forums/viewtopic.php?t=88401

http://www.sapfans.com/forums/viewtopic.php?t=17335

4. How to add list heading like top-of-page in ABAP lists?

http://www.sapfans.com/forums/viewtopic.php?t=58775

http://www.sapfans.com/forums/viewtopic.php?t=60550

http://www.sapfans.com/forums/viewtopic.php?t=16629

5. How to print page number / total number of pages X/XX in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)

6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.

http://www.sapfans.com/forums/viewtopic.php?t=64320

http://www.sapfans.com/forums/viewtopic.php?t=44477

7. How can I set the cell color in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=52107

8. How do I print a logo/graphics in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=81149

http://www.sapfans.com/forums/viewtopic.php?t=35498

http://www.sapfans.com/forums/viewtopic.php?t=5013

9. How do I create and use input-enabled fields in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=84933

http://www.sapfans.com/forums/viewtopic.php?t=69878

10. How can I use ALV for reports that are going to be run in background?

http://www.sapfans.com/forums/viewtopic.php?t=83243

http://www.sapfans.com/forums/viewtopic.php?t=19224

11. How can I display an icon in ALV? (Common requirement is traffic light icon).

http://www.sapfans.com/forums/viewtopic.php?t=79424

http://www.sapfans.com/forums/viewtopic.php?t=24512

12. How can I display a checkbox in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=88376

http://www.sapfans.com/forums/viewtopic.php?t=40968

http://www.sapfans.com/forums/viewtopic.php?t=6919

Cheers

Snehi chouhan