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

ABAP List viewer

Former Member
0 Likes
1,568

Hi all,

I am new to ALV's. Though many say ALV's are easy I find it difficult to understand them reading theory or comprehending the codes in BCALV* in se38. Can any one forward me the sample ALV codes which you have developed so that I can go through the code and understand the concepts of ALV. I promise to award points to each and every answer.I can even give my mail id.

Regards,

Varun.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,503

Hi Varun,

I've attached TWO Files.. which i found very good for beginners..

You'll be getting them soon..

Do inform me incase you dint receive them properly..

I'll resend them

regards

satesh

Message was edited by: Satesh R

Hi all,

I am new to ALV's. Though many say ALV's are easy I find it difficult to understand them reading theory or comprehending the codes in BCALV* in se38. Can any one forward me the sample ALV codes which you have developed so that I can go through the code and understand the concepts of ALV. I promise to award points to each and every answer.I can even give my mail id.

Regards,

Varun.

10 REPLIES 10
Read only

Former Member
0 Likes
1,503

Hi Varun,

Just check this URL..You will find simple examples.

<a href="http://www.sap-basis-abap.com/sapabap01.htm">ALV program</a>

Read only

RichHeilman
Developer Advocate
Developer Advocate
0 Likes
1,503

Here is a very basis example of using the CL_GUI_ALV_GRID in a screen.



REPORT ZRICH_0006.

TABLES: MARA.

TYPE-POOLS: SLIS, ICON.

* Internal Tables
DATA: BEGIN OF IALV OCCURS 0,
      MATNR TYPE MARA-MATNR,
      MAKTX TYPE MAKT-MAKTX,
      END OF IALV .

* Miscellanous Variables
DATA: INDEX_ROWS TYPE LVC_T_ROW,
      INDEX LIKE LINE OF INDEX_ROWS.

***********************************************************************
*       CLASS cl_event_receiver DEFINITION
***********************************************************************
CLASS CL_EVENT_RECEIVER DEFINITION.
  PUBLIC SECTION.
    METHODS HANDLE_DOUBLE_CLICK
      FOR EVENT DOUBLE_CLICK OF CL_GUI_ALV_GRID
      IMPORTING E_ROW E_COLUMN.
  PRIVATE SECTION.
ENDCLASS.

***********************************************************************
*       CLASS CL_EVENT_RECEIVER IMPLEMENTATION
***********************************************************************
CLASS CL_EVENT_RECEIVER IMPLEMENTATION.
  METHOD HANDLE_DOUBLE_CLICK.
* Do Nothing
  ENDMETHOD.
ENDCLASS.

DATA: ALV_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
      EVENT_RECEIVER TYPE REF TO CL_EVENT_RECEIVER,
      ALV_GRID TYPE REF TO CL_GUI_ALV_GRID,
      ROW_TABLE TYPE LVC_T_ROW WITH HEADER LINE,
      OK_CODE LIKE SY-UCOMM,
      LAYOUT  TYPE LVC_S_LAYO,
      FIELDCAT TYPE LVC_T_FCAT.

SELECT-OPTIONS: S_MATNR FOR MARA-MATNR.

START-OF-SELECTION.

  PERFORM GET_DATA.

  IF IALV[] IS INITIAL.
    MESSAGE S429(MO).
    EXIT.
  ENDIF.

  CALL SCREEN 100.

************************************************************************
*      Module  status_0100  OUTPUT
************************************************************************
MODULE STATUS_0100 OUTPUT.
  SET PF-STATUS '0100'.
  SET TITLEBAR '0100'.
ENDMODULE.

************************************************************************
*      Module  ALV_0100  OUTPUT
************************************************************************
MODULE ALV_0100 OUTPUT.

  DATA: VARIANT TYPE  DISVARIANT.
  DATA: LT_EXCLUDE TYPE UI_FUNCTIONS.

  VARIANT-REPORT = SY-REPID.
  VARIANT-USERNAME = SY-UNAME.

* Create Controls
  CREATE OBJECT ALV_CONTAINER
         EXPORTING CONTAINER_NAME = 'ALV_CONTAINER'.

*   create Event Receiver
  CREATE OBJECT EVENT_RECEIVER.
  CREATE OBJECT ALV_GRID
         EXPORTING  I_PARENT =  ALV_CONTAINER.

*  Populate Field Catalog
  PERFORM GET_FIELDCATALOG.

* Optionally restrict generic functions to 'change only'.
* (The user shall not be able to add new lines).
  PERFORM EXCLUDE_TB_FUNCTIONS CHANGING LT_EXCLUDE.

* Set selection mode to "D"  --  Multiple Lines
  LAYOUT-SEL_MODE = 'D'.

  CALL METHOD ALV_GRID->SET_TABLE_FOR_FIRST_DISPLAY
      EXPORTING
           IS_LAYOUT              = LAYOUT
           IT_TOOLBAR_EXCLUDING   = LT_EXCLUDE
           IS_VARIANT             = VARIANT
           I_SAVE                 = 'A'
           I_STRUCTURE_NAME       = 'IALV'
      CHANGING
           IT_OUTTAB       = IALV[]
           IT_FIELDCATALOG = FIELDCAT[].

*   handler for ALV grid
  SET HANDLER EVENT_RECEIVER->HANDLE_DOUBLE_CLICK FOR ALV_GRID.

ENDMODULE.

************************************************************************
*      Module  USER_COMMAND_0100  INPUT
************************************************************************
MODULE USER_COMMAND_0100 INPUT.

  CASE SY-UCOMM.

    WHEN 'BACK' OR 'CANC'.
      PERFORM FREE_CONTAINERS.
      IF SY-SUBRC = 0.
        SET SCREEN 0.
        LEAVE SCREEN.
      ELSE.
        LEAVE PROGRAM.
      ENDIF.

    WHEN 'EXIT'.
      PERFORM FREE_CONTAINERS.
      LEAVE PROGRAM.

    WHEN 'CONTINUE'.

* Retrieve selected rows from ALV grid
      PERFORM GET_SELECTED_ROWS.

* Do something with those selected rows here
      LOOP AT INDEX_ROWS INTO INDEX.

        READ TABLE IALV INDEX INDEX-INDEX.
        IF SY-SUBRC = 0.

* Insert code here

        ENDIF.
      ENDLOOP.



      PERFORM FREE_CONTAINERS.
      LEAVE TO SCREEN 100.

  ENDCASE.

ENDMODULE.


*********************************************************************
*       FORM GET_DATA.
*********************************************************************
FORM GET_DATA.

  SELECT MARA~MATNR MAKT~MAKTX
             INTO CORRESPONDING FIELDS OF TABLE IALV
                 FROM MARA
                      INNER JOIN MAKT
                         ON MARA~MATNR = MAKT~MATNR
                                WHERE MARA~MATNR IN S_MATNR
                                  AND MAKT~SPRAS = SY-LANGU.

  SORT IALV ASCENDING BY MATNR.

ENDFORM.

************************************************************************
*      Form  GET_SELECTED_ROWS
************************************************************************
FORM GET_SELECTED_ROWS.

* Get Selected rows from alv grid
  CLEAR INDEX_ROWS.  REFRESH INDEX_ROWS.
  CALL METHOD ALV_GRID->GET_SELECTED_ROWS
           IMPORTING
                 ET_INDEX_ROWS = INDEX_ROWS.

ENDFORM.

************************************************************************
*      Form  FREE_CONTAINERS
************************************************************************
FORM FREE_CONTAINERS.

  IF NOT ALV_CONTAINER IS INITIAL.
    CALL METHOD ALV_CONTAINER->FREE.
    CLEAR: ALV_CONTAINER.
    FREE : ALV_CONTAINER.
  ENDIF.

ENDFORM.

************************************************************************
*      Form  Get_Fieldcatalog - Set Up Columns/Headers
************************************************************************
FORM GET_FIELDCATALOG.

  DATA: LS_FCAT TYPE LVC_S_FCAT.
  DATA: COLUMNNO(3) TYPE N VALUE '0'.
  REFRESH: FIELDCAT.

  CLEAR: LS_FCAT.
  LS_FCAT-REPTEXT    = 'Material Number'.
  LS_FCAT-COLTEXT    = 'Material Number'.
  LS_FCAT-FIELDNAME  = 'MATNR'.
  LS_FCAT-REF_TABLE  = 'IALV'.
  LS_FCAT-OUTPUTLEN  = '18'.
  LS_FCAT-COL_POS    = 1.
  APPEND LS_FCAT TO FIELDCAT.

  CLEAR: LS_FCAT.
  LS_FCAT-REPTEXT    = 'Material Description'.
  LS_FCAT-COLTEXT    = 'Material Description'.
  LS_FCAT-FIELDNAME  = 'MAKTX'.
  LS_FCAT-REF_TABLE  = 'IALV'.
  LS_FCAT-OUTPUTLEN  = '40'.
  LS_FCAT-COL_POS    = 2.
  APPEND LS_FCAT TO FIELDCAT.

ENDFORM.

***********************************************************************
*      Form  EXCLUDE_TB_FUNCTIONS
***********************************************************************
FORM EXCLUDE_TB_FUNCTIONS CHANGING PT_EXCLUDE TYPE UI_FUNCTIONS.
* Only allow to change data not to create new entries (exclude
* generic functions).

  DATA LS_EXCLUDE TYPE UI_FUNC.

  LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_COPY_ROW.
  APPEND LS_EXCLUDE TO PT_EXCLUDE.
  LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_DELETE_ROW.
  APPEND LS_EXCLUDE TO PT_EXCLUDE.
  LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_APPEND_ROW.
  APPEND LS_EXCLUDE TO PT_EXCLUDE.
  LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_INSERT_ROW.
  APPEND LS_EXCLUDE TO PT_EXCLUDE.
  LS_EXCLUDE = CL_GUI_ALV_GRID=>MC_FC_LOC_MOVE_ROW.
  APPEND LS_EXCLUDE TO PT_EXCLUDE.

ENDFORM.

REgards,

Rich Heilman

Read only

Former Member
0 Likes
1,503

hi varun,

give your ID i'll forward you a detailed document on the same

regards

satesh

Read only

0 Likes
1,503

Hi Satesh,

Please forward the document to this mail id [email protected]

Regards,

Varun.

Read only

0 Likes
1,503

Hi Varun,

I have already send some ALV examples to your e-mail ID.

Lanka

Read only

Former Member
0 Likes
1,504

Hi Varun,

I've attached TWO Files.. which i found very good for beginners..

You'll be getting them soon..

Do inform me incase you dint receive them properly..

I'll resend them

regards

satesh

Message was edited by: Satesh R

Read only

Former Member
0 Likes
1,503

Hi varun ,

As every one says ALV's are very easy , simplified flexible way of displaying outputs.

1) the first and foremost thing that have to be thought is , collect the data to be dispalayed in an Internal table.

2) pass this Internal Table to a ALV Function Module.

thats it your ALV is at your Hands

eg: struct name "str1" ALV

-


s.no name rollno sub1 sub2 sub3

-


-


-


-


-


-


-


It has many parts to it.

The main function module Involved in this is

"REUSE_ALV_GRID_DISPLAY"

in EXPORTING pass

<u>i_structure_name =</u> the name of the structure that which the report should look like for the final ALV display for example it can be "str1" as mentioned above.

and set the field

under TABLES,

t_outtab = The final internal table where the data is available.

The above is the simplest alv.

there is also another part to the above Function Module , i.e Field Catalog . thatis you can mention the order in which the fields to be displayed as in .

the alV can also be modified like this

eg: struct name "str1" ALV

-


name sub1 rollno sub3 sub2 s.no

-


-


-


-


-


-


-


so you can do many things like you can add the totals of particular Column with out actually hard coding it. subtotals and many.

I would send all the example codes with the documentation once if you can give your personal email id.

DO REWARD ME POINTS IF THIS OF HELP TO YOU.

Regards,

Kishore Kumar Yerra.

Read only

0 Likes
1,503

Hi,

Check my previous reply. I have already posted my mail id.

Regards,

Varun.

Read only

0 Likes
1,503

Hi Varun,

The URL i gave contains simple examples & documentation for other ABAP stuff too which can be helpful.

Read only

Former Member
0 Likes
1,503

Hi varun,

this is the simple example for grid display which i have done when i first trained in ALv.

tables:vbrk,vbrp,lips,kna1,vbap.

type-pools:slis.

data:g_fieldcat type slis_t_fieldcat_alv.

data:g_repid like sy-repid.

g_repid = sy-repid.

data:begin of itab occurs 0,

vbeln like vbrp-vbeln,

ernam1 like vbrk-ernam,

erdat1 like vbrk-erdat,

netwr like vbrk-netwr,

kunrg like vbrk-kunrg,

fkdat like vbrk-fkdat,

vbeln1 like vbrp-vbeln,

lmeng like vbrp-lmeng,

netwr1 like vbrp-netwr,

prctr like vbrp-prctr,

mwsbp like vbrp-mwsbp,

werks like vbrp-werks,

vkbur like vbrp-vkbur,

aubel like vbrp-aubel,

vgbel like vbrp-vgbel,

netpr like vbap-netpr,

vbeln2 like vbrk-vbeln,

name1 like kna1-name1,

land1 like kna1-land1,

ort02 like kna1-ort02,

%stax type i,

basic type i,

vb like lips-vbeln,

posnr like lips-posnr,

erzet type lips-erzet,

erdat type lips-erdat,

matnr like lips-matnr,

end of itab.

data:begin of it_vbrk occurs 0,

vbeln like vbrk-vbeln,

kunrg like vbrk-vbeln,

netwr like vbrk-netwr,

erdat like vbrk-erdat,

ernam like vbrk-ernam,

fkdat like vbrk-fkdat,

posnr like vbrp-posnr,

name1 like kna1-name1,

name2 like kna1-name2,

land1 like kna1-land1,

ort02 like kna1-ort02,

end of it_vbrk.

data:begin of it_kna1 occurs 0,

kunnr like kna1-kunnr,

name1 like kna1-name1,

name2 like kna1-name2,

land1 like kna1-land1,

ort02 like kna1-ort02,

end of it_kna1.

data:begin of it_lips occurs 0,

vbeln like lips-vbeln,

matnr like lips-matnr,

erzet like lips-erzet,

erdat like lips-erdat,

posnr like lips-posnr,

vgbel like lips-vgbel,

end of it_lips.

data:itab1 type slis_tabname.

itab1 = 'itab'.

selection-screen:begin of block b11 with frame title text-000.

select-options:s_vkbur for vbrp-vkbur,

s_fkdat for vbrk-fkdat,

s_vbeln for vbrk-vbeln,

s_werks for vbrp-werks,

s_aubel for vbrp-aubel.

selection-screen:end of block b11.

select vbeln ernam erdat netwr kunrg fkdat

from vbrk

into corresponding

fields of table it_vbrk

where vbeln in s_vbeln

and fkdat in s_fkdat.

select vvbeln vlmeng v~netwr

vprctr vmwsbp v~werks

vvkbur vaubel li~erzet

limatnr lierdat

liposnr livgbel

li~erzet from vbrp as v

inner join lips as li on

livgbel = vaubel

into corresponding fields of

table itab for all entries in it_vbrk

where v~vbeln = it_vbrk-vbeln

and v~werks in s_werks

and v~vkbur in s_vkbur

and v~aubel in s_aubel.

select kunnr name1 land1 ort02

from kna1 into corresponding

fields of table it_kna1

for all entries in it_vbrk

where kunnr = it_vbrk-kunrg.

select vbeln matnr erzet erdat posnr vgbel from lips

into corresponding fields

of table it_lips

for all entries in itab

where vgbel = itab-aubel.

perform fill_fieldcat using g_fieldcat.

data:vtabix like sy-tabix,

utabix like sy-tabix.

loop at it_vbrk.

utabix = sy-tabix.

read table it_kna1 with key it_vbrk-kunrg.

if sy-subrc = 0.

it_vbrk-name1 = it_kna1-name1.

it_vbrk-land1 = it_kna1-land1.

it_vbrk-ort02 = it_kna1-ort02.

endif.

modify it_vbrk index utabix.

endloop.

loop at itab.

vtabix = sy-tabix.

read table it_vbrk with key itab-vbeln.

if sy-subrc = 0.

itab-vbeln2 = it_vbrk-vbeln.

itab-netwr1 = itab-netwr.

itab-netwr = it_vbrk-netwr.

itab-erdat1 = it_vbrk-erdat.

itab-ernam1 = it_vbrk-ernam.

itab-fkdat = it_vbrk-fkdat.

itab-kunrg = it_vbrk-kunrg.

itab-name1 = it_vbrk-name1.

itab-land1 = it_vbrk-land1.

itab-ort02 = it_vbrk-ort02.

itab-basic = itab-netwr - itab-mwsbp.

if itab-lmeng = 0.

itab-netpr = itab-netwr1.

else.

itab-netpr = itab-netwr1 / itab-lmeng.

endif.

if itab-netwr = 0.

itab-%stax = 0.

else.

itab-%stax = ( itab-mwsbp / itab-netwr ) * 100.

endif.

read table it_lips with key

matnr = itab-matnr

erzet = itab-erzet

erdat = itab-erdat

posnr = itab-posnr

vgbel = itab-aubel.

itab-vb = it_lips-vbeln.

modify itab index vtabix.

endif.

endloop.

perform grid_display.

form fill_fieldcat using g1_fieldcat type slis_t_fieldcat_alv.

data:s_g_fieldcat type slis_fieldcat_alv.

data:col type i value 1.

s_g_fieldcat-fieldname = 'VBELN2'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'VBRK'.

s_g_fieldcat-seltext_m = 'BILLING DOCUMENT'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'FKDAT'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'VBRK'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'AUBEL'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'vbrP'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'VB'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'lips'.

s_g_fieldcat-seltext_m = 'DELIVERY DOCUMENT'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'POSNR'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'lips'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'WERKS'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'vbrp'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'KUNRG'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'VBRK'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'ERDAT1'.

s_g_fieldcat-seltext_m = 'created date'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'vbrk'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'NAME1'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'KNA1'.

s_g_fieldcat-seltext_m = 'NAME OF CUSTOMER'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'LAND1'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'KNA1'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'ORT02'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'KNA1'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'MATNR'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'VBrp'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'LMENG'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'vbrp'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'NETPR'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'VBAP'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'NETWR1'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'VBRP'.

s_g_fieldcat-seltext_m = 'PRICE'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'NETWR'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'VBRK'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'MWSBP'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'vbrp'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = '%STAX'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-col_pos = col.

s_g_fieldcat-seltext_m = '%SALESTAX'.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'BASIC'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-seltext_m = 'BASIC SALARY'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

s_g_fieldcat-fieldname = 'PRCTR'.

s_g_fieldcat-tabname = itab.

s_g_fieldcat-ref_tabname = 'vbrp'.

s_g_fieldcat-col_pos = col.

col = col + 1.

append s_g_fieldcat to g1_fieldcat.

clear s_g_fieldcat.

call function 'REUSE_ALV_FIELDCATALOG_MERGE'

exporting

i_program_name = g_repid

i_internal_tabname = itab1

changing

ct_fieldcat = g1_fieldcat.

endform.

form grid_display.

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

i_callback_program = 'G_REPID'

it_fieldcat = g_fieldcat[]

tables

t_outtab = itab

exceptions

program_error = 1

others = 2

.

endform.

cheers,

Sunil kumar reddy.