Shared Top Border

Enterprise Resource
Planning Portal

 

Advertise | Founder BLOG

ERPGenie.COM ABAP Tips and Tricks Database

THE ultimate
ERP website

 

Forums | Vote for us |

Google    Other Search Options

Home arrow Sample Code arrow ABAP Reports arrow Simple ALV Report
Simple ALV Report PDF Print E-mail
User Rating: / 29
PoorBest 
Written by Martin Schlegel   
Saturday, 20 January 2007

Simple example to use ALV and to define the ALV data in an internal table.

Also see ALV Grid Control

REPORT Z_ALV_SIMPLE_EXAMPLE_WITH_ITAB .
 ************************************************************************
 *Simple example to use ALV and to define the ALV data in an internal
 *table
 ************************************************************************
 * Martin Schlegel, BearingPoint, December 2004
 *
 * Thanks to Madhusudhan Sonee and Rama Krishna Kommineni for testing
 * and feedback
 *
 ************************************************************************
 ************************************************************************
 *For a very long time, people gave me the feeling that ALV is a
 *complicated tool that is difficult to understand and to use.
 *Lately I had to use it and I discovered that ALV is easy to use and
 *saves a lot of work:
 *ALV will generate the column headings on its own, so one does not need
 *to work on headlines and transalation.
 *ALV allows the user to select the columns he wants to see, so the user
 *does not need to contact a developer for every change he likes to have.
 *ALV allows the user to create his own sums, so …
 *ALV has a simple way to work with internal tables.
 *If you really want to save time, use ALV instead of write!
 ************************************************************************
 *
 *Please take 30 minutes to explore the following example and see how
 *easy it is to use ALV!
 *
 ************************************************************************
 
 *data definition
 
 tables:
 marav. "Table MARA and table MAKT
 
 *---------------------------------------------------------------------*
 * Data to be displayed in ALV
 * Using the following syntax, REUSE_ALV_FIELDCATALOG_MERGE can auto-
 * matically determine the fieldstructure from this source program
 Data:
 begin of imat occurs 100,
 matnr like marav-matnr, "Material number
 maktx like marav-maktx, "Material short text
 matkl like marav-matkl, "Material group (so you can test to make
                         " intermediate sums)
 ntgew like marav-ntgew, "Net weight, numeric field (so you can test to
                         "make sums)
 gewei like marav-gewei, "weight unit (just to be complete)
 end of imat.
 
 *---------------------------------------------------------------------*
 * Other data needed
 * field to store report name
 data i_repid like sy-repid.
 * field to check table length
 data i_lines like sy-tabix.
 
 *---------------------------------------------------------------------*
 * Data for ALV display
 TYPE-POOLS: SLIS.
 data int_fcat type SLIS_T_FIELDCAT_ALV.
 
 *---------------------------------------------------------------------*
 select-options:
 s_matnr for marav-matnr matchcode object MAT1.
 
 *---------------------------------------------------------------------*
 start-of-selection.
 
 * read data into table imat
   select * from marav
   into corresponding fields of table imat
   where
   matnr in s_matnr.
 
 * Check if material was found
   clear i_lines.
   describe table imat lines i_lines.
   if i_lines lt 1.
 *   Using hardcoded write here for easy upload
     write: /
     'No materials found.'.
     exit.
   endif.
 
 end-of-selection.
 *---------------------------------------------------------------------*
 *
 * Now, we start with ALV
 *
 *---------------------------------------------------------------------*
 *
 *
 * To use ALV, we need a DDIC-structure or a thing called Fieldcatalogue.
 * The fieldcatalouge can be generated by FUNCTION
 * 'REUSE_ALV_FIELDCATALOG_MERGE' from an internal table from any
 * report source, including this report.
 * The only problem one might have is that the report and table names
 * need to be in capital letters. (I had it :-( )
 *
 *
 *---------------------------------------------------------------------*
 
 * Store report name
   i_repid = sy-repid.
 
 * Create Fieldcatalogue from internal table
   CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
        EXPORTING
             I_PROGRAM_NAME         = i_repid
             I_INTERNAL_TABNAME     = 'IMAT'  "capital letters!
             I_INCLNAME             = i_repid
        CHANGING
             CT_FIELDCAT            = int_fcat
        EXCEPTIONS
             INCONSISTENT_INTERFACE = 1
             PROGRAM_ERROR          = 2
             OTHERS                 = 3.
 *explanations:
 *    I_PROGRAM_NAME is the program which calls this function
 *
 *    I_INTERNAL_TABNAME is the name of the internal table which you want
 *                       to display in ALV
 *
 *    I_INCLNAME is the ABAP-source where the internal table is defined
 *               (DATA....)
 *      CT_FIELDCAT contains the Fieldcatalouge that we need later for
 *      ALV display
 
 
   IF SY-SUBRC <> 0.
     write: /
     'Returncode',
     sy-subrc,
     'from FUNCTION REUSE_ALV_FIELDCATALOG_MERGE'.
   ENDIF.
 
 *This was the fieldcatlogue
 *---------------------------------------------------------------------*
 *
 * And now, we are ready to display our list
 
 * Call for ALV list display
   CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
        EXPORTING
 *            I_CALLBACK_PROGRAM = 'Z_ALV_SIMPLE_EXAMPLE_WITH_ITAB'
             I_CALLBACK_PROGRAM = i_repid
             IT_FIELDCAT        = int_fcat
             I_SAVE             = 'A'
        TABLES
             T_OUTTAB           = imat
        EXCEPTIONS
             PROGRAM_ERROR      = 1
             OTHERS             = 2.
 *
 *explanations:
 *    I_CALLBACK_PROGRAM is the program which calls this function
 *
 *    IT_FIELDCAT (just made by REUSE_ALV_FIELDCATALOG_MERGE) contains
 *                 now the data definition needed for display
 *
 *    I_SAVE allows the user to save his own layouts
 *
 *      T_OUTTAB contains the data to be displayed in ALV
 
 
   IF SY-SUBRC <> 0.
     write: /
     'Returncode',
     sy-subrc,
     'from FUNCTION REUSE_ALV_LIST_DISPLAY'.
   ENDIF.
 *
 *---------------------------------------------------------------------*
 *
 * yes, it is that simple. Go ahead and try yourself!
 *
 *---------------------------------------------------------------------*
 
< Prev   Next >

Google Search

Google Ads

Shared Bottom Border

Contact Us | Polls | Add URL | Contribute | Privacy | Terms | Feedback

Discussion Forum | BLOG | Consultants: Post your resume | Companies: Advertise on ERPGenie.COM | Post Job
Financials Consultant | Consultant Review | Gallia Consulting | Supply Chain Project | SAP Financials Forum
GenieHoldings.COM, Inc. | Genie Press | WorkflowGenie | ESAGenie | ERPTopSites | ABAP Tips and Tricks | SAP Solutions Database

EDIGenie | Searching Survivor