06-09-2008 11:30 AM
hi
can anyone send me a simple ALV report.
i did my report in classical version and have to display in alv format kindly send me the simple code that is understandable
06-09-2008 11:34 AM
REPORT YMS_ALVBASIC .
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
06-09-2008 11:34 AM
REPORT YMS_ALVBASIC .
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
06-09-2008 11:36 AM
Hi ,
see below simple ALV with using events.
************************************************************************
************************************************************************
PROGRAM NAME : ZALVSIMPLE
TRANSACTION CODE : YM_SIMPLE
AUTHOR : MILTON
COMPANY : METHODEX
DATE STARTED : 31.10.2004
FUNCTIONAL CONTACT :
TRANSPORT/CORRECTION/TASK ID :
************************************************************************
PURPOSE:- ILLUSTRATES
1. SIMPLE ALV REPORTING.
2. USE OF BOTH REUSE_ALV_LIST_DISPLAY AND REUSE_ALV_GRID_DISPLAY
3. HOW TO USE ICONS AND SYMBOLS AND LINES IN REPORTING.
4. COMPARES HOW ORDER OF EVENTS GET TRIGGIERED IN LIST DISPLAY
AND GRID DISPLAY
5. DISPLAYS VARIOUS FORMATTING OPTIONS
***
***
***
************************************************************************
MODIFICATION HISTORY
TRANSPORT # DATE AUTHOR DESCRIPTION
***
***
***
************************************************************************
REPORT ZALVSIMPLE NO STANDARD PAGE HEADING
LINE-COUNT 5(2) LINE-SIZE 255.
TYPE-POOLS SLIS.
TABLES: SFLIGHT.
************************************************************
INCLUDE <LIST>.
SKIP 20.
WRITE: /50 ICON_GREEN_LIGHT AS ICON ,'YES! THE PROGRAM IS SUCCESS',
SY-CPROG.
INCLUDE <SYMBOL>.
************************************************************
DATA: ISFLIGHT LIKE SFLIGHT OCCURS 0 WITH HEADER LINE.
DATA: FCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
DATA: EVENTS TYPE SLIS_T_EVENT WITH HEADER LINE.
DATA: SORT TYPE SLIS_T_SORTINFO_ALV WITH HEADER LINE.
DATA: LIST TYPE SLIS_T_LISTHEADER WITH HEADER LINE.
************************************************************
SELECT * FROM SFLIGHT UP TO 25 ROWS INTO TABLE ISFLIGHT.
************************************************************
FCAT-COL_POS = 1.
FCAT-FIELDNAME = 'CARRID'.
FCAT-REF_TABNAME = 'SFLIGHT'.
FCAT-EMPHASIZE = 'C511'.
FCAT-FIX_COLUMN = 'X'.
FCAT-HOTSPOT = 'X'.
FCAT-OUTPUTLEN = 5.
APPEND FCAT.
FCAT-COL_POS = 2.
FCAT-FIELDNAME = 'CONNID'.
FCAT-REF_TABNAME = 'SFLIGHT'.
FCAT-EMPHASIZE = 'C900'.
*FCAT-TECH = 'X'.
FCAT-KEY_SEL = 'X'.
FCAT-OUTPUTLEN = 8.
APPEND FCAT.
FCAT-COL_POS = 3.
FCAT-FIELDNAME = 'FLDATE'.
FCAT-REF_TABNAME = 'SFLIGHT'.
FCAT-EMPHASIZE = 'C410'.
FCAT-JUST = 'R'.
*FCAT-NO_OUT = 'X'.
FCAT-OUTPUTLEN = 15.
APPEND FCAT.
FCAT-COL_POS = 4.
FCAT-FIELDNAME = 'SEATSMAX'.
FCAT-REF_TABNAME = 'SFLIGHT'.
FCAT-EMPHASIZE = 'C711'.
FCAT-DO_SUM = 'X'.
FCAT-JUST = 'C'.
FCAT-OUTPUTLEN = 19.
APPEND FCAT.
*************************************************************
SORT-FIELDNAME = 'CONNID'.
SORT-UP = 'X'.
SORT-SUBTOT = 'X'.
APPEND SORT.
************************************************************8
EVENTS-FORM = 'TOP'.
EVENTS-NAME = 'TOP_OF_PAGE'.
APPEND EVENTS.
EVENTS-FORM = 'BOTTOM'.
EVENTS-NAME = 'END_OF_PAGE'.
APPEND EVENTS.
EVENTS-FORM = 'TLIST'.
EVENTS-NAME = 'TOP_OF_LIST'.
APPEND EVENTS.
EVENTS-FORM = 'ELIST'.
EVENTS-NAME = 'END_OF_LIST'.
APPEND EVENTS.
EVENTS-FORM = 'TCPAGE'.
EVENTS-NAME = 'TOP_OF_COVERPAGE'.
APPEND EVENTS.
EVENTS-FORM = 'ECPAGE'.
EVENTS-NAME = 'END_OF_COVERPAGE'.
APPEND EVENTS.
EVENTS-FORM = 'FTPAGE'.
EVENTS-NAME = 'FOREIGN_TOP_OF_PAGE'.
APPEND EVENTS.
EVENTS-FORM = 'FEPAGE'.
EVENTS-NAME = 'FOREIGN_END_OF_PAGE'.
APPEND EVENTS.
***********************************************************
DATA : NO LIKE SFLIGHT-CARRID.
SELECT SINGLE CARRID FROM SFLIGHT INTO NO.
LIST-TYP = 'H'.
LIST-INFO = 'THIS IS THE HEADING FROM THE TOP OF THE PAGE EVENT'.
APPEND LIST.
LIST-TYP = 'A'.
*LIST-KEY = NO.
LIST-INFO = 'THIS IS THE HEADING FROM THE TOP OF THE PAGE EVENT'.
APPEND LIST.
*LIST-TYP = 'H'.
*LIST-INFO = NO.
*APPEND LIST.
LIST-TYP = 'S'.
LIST-KEY = NO.
APPEND LIST.
**********************************************************
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = 'YMENU'
I_CALLBACK_USER_COMMAND = ' '
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = FCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = SORT[]
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = EVENTS[]
IT_EVENT_EXIT =
IS_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 = ISFLIGHT[]
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.
*****************************************************************
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = SY-CPROG
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = 'SFLIGHT DETAILS'
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = FCAT[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT = FCAT-COL_POS
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = EVENTS[]
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ISFLIGHT[]
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.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = LIST[]
I_LOGO = 'ENJOYSAP_LOGO'
I_END_OF_LIST_GRID = ' '
.
WRITE / SYM_RIGHT_HAND AS SYMBOL .
WRITE: ICON_REMOVE AS ICON, 'TOP OF PAGE', SY-CPROG. ULINE.
ENDFORM.
FORM BOTTOM.
*CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = LIST[]
I_LOGO = 'ENJOYSAP_LOGO'
I_END_OF_LIST_GRID = 'ENJOYSAP_LOGO'
*
.
WRITE / SYM_RIGHT_HAND AS SYMBOL .
WRITE: ICON_SEARCH AS ICON, 'END OF PAGE'.
ENDFORM.
FORM TLIST.
WRITE SYM_RADIOBUTTON AS SYMBOL .
WRITE: ICON_SEARCH AS ICON, 'TOP OF LIST'. ULINE.
ENDFORM.
FORM ELIST.
WRITE / ICON_EXECUTE_OBJECT AS ICON .
WRITE: ICON_GRAPHICS AS ICON, 'END OF LIST'.
ENDFORM.
FORM TCPAGE.
WRITE SYM_PHONE AS SYMBOL .
WRITE: ICON_GRAPHICS AS ICON, 'TOP OF COVERPAGE'.
ENDFORM.
FORM ECPAGE.
WRITE SYM_CHECKBOX AS SYMBOL .
WRITE: ICON_ANNOTATION AS ICON, 'END OF COVERPAGE'.
ENDFORM.
FORM FTPAGE.
WRITE LINE_CROSS AS LINE .
WRITE: ICON_ADDRESS AS ICON, 'END OF COVERPAGE'.
ENDFORM.
FORM FEPAGE.
WRITE LINE_HORIZONTAL_LINE AS LINE .
WRITE: ICON_INFORMATION AS ICON, 'END OF COVERPAGE'.
ENDFORM.
********************************************************************
Regards,
Vishvesh
06-09-2008 11:38 AM
Hi Venkat,
Please check this link
http://yashtechiesabap.blogspot.com/2008/06/firsr-step-in-alv-simple-program.html
TYPE-POOLS:slis.
DATA:w_repid LIKE sy-repid.
DATA:fs_layout TYPE slis_layout_alv.
DATA: t_fieldcat TYPE slis_t_fieldcat_alv,
fs_fieldcat TYPE slis_fieldcat_alv.
*********************************************
DATA:BEGIN OF fs_string,
carrid LIKE spfli-carrid,
connid LIKE spfli-connid,
countryfr LIKE spfli-countryfr,
countryto LIKE spfli-countryto,
END OF fs_string.
DATA:t_spfli LIKE TABLE OF fs_string.
PERFORM get_data.
PERFORM prepare_fieldcatalog.
PERFORM display_output.
*&---------------------------------------------------------------------*
*& Form prepare_fieldcatalog
*&---------------------------------------------------------------------*
* Fills data to the fieldcatalaog
*----------------------------------------------------------------------*
FORM prepare_fieldcatalog .
fs_fieldcat-col_pos = 1.
fs_fieldcat-fieldname = 'CARRID'.
fs_fieldcat-seltext_m = 'Airlinecarrier'.
fs_fieldcat-key = 'X'.
fs_fieldcat-hotspot = 'X'.
APPEND fs_fieldcat TO t_fieldcat.
CLEAR fs_fieldcat.
fs_fieldcat-col_pos = 2.
fs_fieldcat-fieldname = 'CONNID'.
fs_fieldcat-seltext_m = 'Connectionid'.
APPEND fs_fieldcat TO t_fieldcat.
CLEAR fs_fieldcat.
fs_fieldcat-col_pos = 3.
fs_fieldcat-fieldname = 'COUNTRYFR'.
fs_fieldcat-seltext_m = 'Countryfrom'.
APPEND fs_fieldcat TO t_fieldcat.
CLEAR fs_fieldcat.
fs_fieldcat-col_pos = 4.
fs_fieldcat-fieldname = 'COUNTRYTO'.
fs_fieldcat-seltext_m = 'Countryto'.
APPEND fs_fieldcat TO t_fieldcat.
CLEAR fs_fieldcat.
ENDFORM. " prepare_fieldcatalog
*&---------------------------------------------------------------------*
*& Form get_data
*&---------------------------------------------------------------------*
* Fetch data from database table to internal table
*----------------------------------------------------------------------*
FORM get_data .
SELECT carrid
connid
countryfr
countryto
FROM spfli
INTO CORRESPONDING FIELDS OF TABLE t_spfli.
w_repid = sy-repid.
ENDFORM. " get_data
*&---------------------------------------------------------------------*
*& Form DISPLAY_OUTPUT
*----------------------------------------------------------------------*
* Function module to display ALV
*----------------------------------------------------------------------*
FORM display_output .
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
i_callback_program = w_repid
it_fieldcat = t_fieldcat[]
TABLES
t_outtab = t_spfli
* EXCEPTIONS
* PROGRAM_ERROR = 1
.
Endform.
Best regards,
raam
06-09-2008 11:41 AM
Hi,
take a look at report SALV_DEMO_TABLE_REAL_SIMPLE .
Regards Rudi
06-09-2008 11:54 AM
Hi Venkat,
Please look at the following code.
&----
*& Form ALV_DISP_9100_TEST_CHECKED
&----
text
----
--> p1 text
<-- p2 text
----
FORM ALV_DISP_9100_TEST_CHECKED .
PERFORM FIELDCAT1_INIT.
*Header and Footer on Print Only
ALV_SETTINGS-TOP_P_ONLY = C_X.
ALV_SETTINGS-EOL_P_ONLY = C_X.
WA_EVENTS-NAME = SLIS_EV_END_OF_LIST.
WA_EVENTS-FORM = 'END_OF_LIST'.
APPEND WA_EVENTS TO ALV_EVENTS..
CLEAR WA_EVENTS.
WA_EVENTS-NAME = SLIS_EV_TOP_OF_LIST.
WA_EVENTS-FORM = 'TOP_OF_PAGE'.
APPEND WA_EVENTS TO ALV_EVENTS.
CLEAR WA_EVENTS.
ALV_LAYOUT-COLWIDTH_OPTIMIZE = C_X.
ALV_LAYOUT-ZEBRA = C_X.
CONCATENATE SY-TITLE ' Test Run ' INTO ALV_TITLE.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BYPASSING_BUFFER = C_X
I_CALLBACK_PROGRAM = SY-CPROG
*Code comment by WIPSHK02.
I_CALLBACK_USER_COMMAND = 'USER_COMMAND '
*End of Code Comment by WIPSHK02.
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE '
I_GRID_TITLE = ALV_TITLE
I_GRID_SETTINGS = ALV_SETTINGS
IS_LAYOUT = ALV_LAYOUT
IT_FIELDCAT = ALV_FIELDCAT1[]
I_DEFAULT = C_X
I_SAVE = C_A
IT_EVENTS = ALV_EVENTS
TABLES
T_OUTTAB = ITAB_FORMAT1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE I005(ZHCM01).
ENDIF.
ENDFORM. " ALV_DISP_9100_TEST_CHECKED
***********************************************************************
FORM FIELDCAT1_INIT.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = TEXT-002
I_INTERNAL_TABNAME = TEXT-003
I_INCLNAME = TEXT-004
CHANGING
CT_FIELDCAT = ALV_FIELDCAT1[]
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
MESSAGE E022(ZHCM01).
ENDIF.
LOOP AT ALV_FIELDCAT1.
CASE ALV_FIELDCAT1-FIELDNAME.
WHEN 'PERSONID_EXT'.
ALV_FIELDCAT1-SELTEXT_M = TEXT-005.
ALV_FIELDCAT1-DDICTXT = C_L.
WHEN 'PERNR'.
ALV_FIELDCAT1-SELTEXT_M = TEXT-006.
ALV_FIELDCAT1-DDICTXT = C_L.
WHEN 'ORGEH'.
ALV_FIELDCAT1-SELTEXT_M = TEXT-007.
ALV_FIELDCAT1-DDICTXT = C_M.
WHEN 'PLANS'.
ALV_FIELDCAT1-SELTEXT_M = TEXT-008.
ALV_FIELDCAT1-DDICTXT = C_M.
WHEN 'BEGDA'.
ALV_FIELDCAT1-SELTEXT_M = TEXT-009.
ALV_FIELDCAT1-DDICTXT = C_M.
WHEN 'ZTOT_AMT'.
ALV_FIELDCAT1-SELTEXT_M = TEXT-010.
ALV_FIELDCAT1-DDICTXT = C_M.
WHEN 'LGART'.
ALV_FIELDCAT1-SELTEXT_M = TEXT-011.
ALV_FIELDCAT1-DDICTXT = C_M.
WHEN 'CURRE'.
ALV_FIELDCAT1-SELTEXT_M = TEXT-012.
ALV_FIELDCAT1-DDICTXT = C_M.
ENDCASE.
MODIFY ALV_FIELDCAT1.
ENDLOOP.
ENDFORM. "FIELDCAT1_INIT
06-09-2008 11:57 AM
Hi Venkat,
Please check this code
* Macro definition
DEFINE m_fieldcat.
add 1 to ls_fieldcat-col_pos.
ls_fieldcat-fieldname = &1.
ls_fieldcat-ref_tabname = &2.
ls_fieldcat-cfieldname = &3.
ls_fieldcat-qfieldname = &4.
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.
*---------------------------------------------------------------------*
TYPE-POOLS: slis. " ALV Global types
*---------------------------------------------------------------------*
TYPES:
BEGIN OF ty_vbak,
vkorg TYPE vbak-vkorg, " Sales organization
kunnr TYPE vbak-kunnr, " Sold-to party
vbeln TYPE vbak-vbeln, " Sales document
netwr TYPE vbak-netwr, " Net Value of the Sales Order
waerk TYPE vbak-waerk, " Currency
END OF ty_vbak,
BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln, " Sales document
posnr TYPE vbap-posnr, " Sales document item
matnr TYPE vbap-matnr, " Material number
arktx TYPE vbap-arktx, " Short text for sales order item
kwmeng TYPE vbap-kwmeng, " Order quantity
vrkme TYPE vbap-vrkme, " Quantity Unit
netwr TYPE vbap-netwr, " Net value of the order item
waerk TYPE vbap-waerk, " Currency
END OF ty_vbap.
*---------------------------------------------------------------------*
DATA :
gs_vbak TYPE ty_vbak,
* Data displayed in the first list
gt_vbak TYPE TABLE OF ty_vbak,
* Data displayed in the second list
gt_vbap TYPE TABLE OF ty_vbap.
*---------------------------------------------------------------------*
SELECT-OPTIONS :
s_vkorg FOR gs_vbak-vkorg, " Sales organization
s_kunnr FOR gs_vbak-kunnr, " Sold-to party
s_vbeln FOR gs_vbak-vbeln. " Sales document
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED
PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
*---------------------------------------------------------------------*
INITIALIZATION.
v_1 = 'Maximum of records to read'.
*---------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM f_read_data_vbak.
PERFORM f_display_data_vbak.
*---------------------------------------------------------------------*
* Form f_read_data_vbak
*---------------------------------------------------------------------*
FORM f_read_data_vbak.
SELECT vkorg kunnr vbeln netwr waerk
INTO CORRESPONDING FIELDS OF TABLE gt_vbak
UP TO p_max ROWS
FROM vbak
WHERE kunnr IN s_kunnr
AND vbeln IN s_vbeln
AND vkorg IN s_vkorg
and vbtyp = 'C'. " C = Sales Orders.
ENDFORM. " F_READ_DATA_VBAK
*---------------------------------------------------------------------*
* Form f_display_data_vbak
*---------------------------------------------------------------------*
FORM f_display_data_vbak.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv.
* Build the field catalog
m_fieldcat 'VKORG' 'VBAK' '' ''.
m_fieldcat 'KUNNR' 'VBAK' '' ''.
m_fieldcat 'VBELN' 'VBAK' '' ''.
m_fieldcat 'NETWR' 'VBAK' 'WAERK' ''.
m_fieldcat 'WAERK' 'VBAK' '' ''.
* Display the first list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = lt_fieldcat
TABLES
t_outtab = gt_vbak.
ENDFORM. " F_DISPLAY_DATA_VBAK
*---------------------------------------------------------------------*
* FORM USER_COMMAND *
*---------------------------------------------------------------------*
FORM user_command USING u_ucomm TYPE syucomm
us_selfield TYPE slis_selfield. "#EC CALLED
CASE u_ucomm.
WHEN '&IC1'.
READ TABLE gt_vbak INDEX us_selfield-tabindex INTO gs_vbak.
CHECK sy-subrc EQ 0.
PERFORM f_read_data_vbap. " Read data from VBAP
PERFORM f_display_data_vbap.
ENDCASE.
ENDFORM. " USER_COMMAND
*---------------------------------------------------------------------*
* Form f_read_data_vbap
*---------------------------------------------------------------------*
FORM f_read_data_vbap.
SELECT vbeln posnr matnr arktx kwmeng vrkme netwr waerk
INTO CORRESPONDING FIELDS OF TABLE gt_vbap
FROM vbap
WHERE vbeln = gs_vbak-vbeln.
ENDFORM. " F_READ_DATA_VBAP
*---------------------------------------------------------------------*
* Form f_display_data_vbap
*---------------------------------------------------------------------*
FORM f_display_data_vbap.
DATA:
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv.
* Build the field catalog
m_fieldcat 'VBELN' 'VBAP' '' ''.
m_fieldcat 'POSNR' 'VBAP' '' ''.
m_fieldcat 'MATNR' 'VBAP' '' ''.
m_fieldcat 'ARKTX' 'VBAP' '' ''.
m_fieldcat 'KWMENG' 'VBAP' '' 'VRKME'.
m_fieldcat 'VRKME' 'VBAP' '' ''.
m_fieldcat 'NETWR' 'VBAP' 'WAERK' ''.
m_fieldcat 'WAERK' 'VBAP' '' ''.
* Display the second list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
it_fieldcat = lt_fieldcat
TABLES
t_outtab = gt_vbap.
ENDFORM. " F_DISPLAY_DATA_VBAP
Best regards,
raam
06-09-2008 12:14 PM