Application Development 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: 

alv report

Former Member
0 Kudos

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

1 ACCEPTED SOLUTION

p291102
Active Contributor
0 Kudos
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
7 REPLIES 7

p291102
Active Contributor
0 Kudos
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

Former Member
0 Kudos

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

Former Member
0 Kudos

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

Former Member
0 Kudos

Hi,

take a look at report SALV_DEMO_TABLE_REAL_SIMPLE .

Regards Rudi

Former Member
0 Kudos

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

Former Member
0 Kudos

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

Former Member
0 Kudos

thanks alot i am done with it