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

a simple ALV report using classes & methods ...

Former Member
0 Likes
8,989

i want a simple ALV report using classes & methods ...

my requirement : i have to use classes & methods instead of calling a function module to display in grid or list format.

plz send me with explanation ASAP...it's very urgent..

Thanks in advance .

5 REPLIES 5
Read only

harimanjesh_an
Active Participant
0 Likes
3,017
Read only

Former Member
0 Likes
3,017

Hi

Please refer

https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d9719a41...

U can use methods for vreating ALVs.

There is a method named set_table_for_first_display in OOP Concepts.

Use this Object Oriented Approach for ALV Creation

  • Calling the method set_table_for_first_display

*----


CALL METHOD cust_alv->set_table_for_first_display

EXPORTING

is_layout = gst_layout

CHANGING

it_outtab = gt_list

it_fieldcatalog = gt_fcat

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 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.

Object Creation and all

  • Creation of Object for Container

*----


CREATE OBJECT cust_container

EXPORTING

container_name = 'ALV_CONTAINER'

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

others = 6

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • Creation of Object for ALV Grid

*----


CREATE OBJECT cust_alv

EXPORTING

i_parent = cust_container

EXCEPTIONS

error_cntl_create = 1

error_cntl_init = 2

error_cntl_link = 3

error_dp_create = 4

others = 5

.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • Layout settings

*----


gst_layout-zebra ='X'.

gst_layout-cwidth_opt = 'X'.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

  • I_BUFFER_ACTIVE =

I_STRUCTURE_NAME = 'ZCS_INACTV_CUST'

  • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_BYPASSING_BUFFER =

CHANGING

ct_fieldcat = gt_fcat

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

  • Calling the method set_table_for_first_display

*----


CALL METHOD cust_alv->set_table_for_first_display

EXPORTING

is_layout = gst_layout

CHANGING

it_outtab = gt_list

it_fieldcatalog = gt_fcat

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 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.

For object oriented concepts refer this link https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/b6cae890-0201-0010-ef8b-f970a9c4...

Reaward if helpful

Read only

uwe_schieferstein
Active Contributor
0 Likes
3,017

Hello Suddu

Following are some of my sample reports that I have posted in SDN:

Regards

Uwe

Read only

Former Member
0 Likes
3,017

Hi Suddu,

Go to the following link which gives you sample codes with brief description of the programs.

<a href="http://www.sapdev.co.uk/reporting/alv/alvscr.htm">http://www.sapdev.co.uk/reporting/alv/alvscr.htm</a>

Then coming to steps for creation of ALV in OOABAP.

1. Create a program in se38 and just activate it without any code for now.

2. Go to module pool and create a screen, put a custom container control on to the screen. (You will find this control on right side tool box).

3. Give a name to the control created in step 2.

4. Activate the screen.

5. Come to the program declare two variables to hold instances of 2 classes CL_GUI_CUSTOM_CONTAINER, CL_GUI_ALV_GRID.

6. create an instance of the class CL_GUI_CUSTOM_CONTAINER passing container name created in step 3.

7. create an instance of the class CL_GUI_ALV_GRID passing INSTANCE VARIBALE name created in step 6.

8. using the ref. variable of previous step call method SET_TABLE FORFIRST_DISPLAY method and pass structure name and internal table containing data.

9. then call screen created in step 2.

see my next post for the program code.

Hey... execute the program . You are there with your OOALV.

Reward points if useful,

Aleem.

Read only

Former Member
0 Likes
3,017

Hi Suddu,

This is the code for simple alv.


*&---------------------------------------------------------------------*
*& Report  ZGS_SIMPLE_ALV
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  zgs_simple_alv.

DATA : it_mara TYPE TABLE OF mara.

DATA : container TYPE REF TO cl_gui_custom_container,
       grid TYPE REF TO cl_gui_alv_grid.

SELECT * FROM mara INTO TABLE it_mara UP TO 10 ROWS.

 CREATE OBJECT container
   EXPORTING
*     PARENT                      =
     container_name              =  'CONTAINER'
*     STYLE                       =
*     LIFETIME                    = lifetime_default
*     REPID                       =
*     DYNNR                       =
*     NO_AUTODEF_PROGID_DYNNR     =
*   EXCEPTIONS
*     CNTL_ERROR                  = 1
*     CNTL_SYSTEM_ERROR           = 2
*     CREATE_ERROR                = 3
*     LIFETIME_ERROR              = 4
*     LIFETIME_DYNPRO_DYNPRO_LINK = 5
*     others                      = 6
     .
 IF sy-subrc <> 0.
*  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
 ENDIF.


CREATE OBJECT grid
  EXPORTING
*    I_SHELLSTYLE      = 0
*    I_LIFETIME        =
    i_parent          = container
*    I_APPL_EVENTS     = space
*    I_PARENTDBG       =
*    I_APPLOGPARENT    =
*    I_GRAPHICSPARENT  =
*    I_NAME            =
*    I_FCAT_COMPLETE   = SPACE
*  EXCEPTIONS
*    ERROR_CNTL_CREATE = 1
*    ERROR_CNTL_INIT   = 2
*    ERROR_CNTL_LINK   = 3
*    ERROR_DP_CREATE   = 4
*    others            = 5
    .
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 METHOD grid->set_table_for_first_display
  EXPORTING
*    I_BUFFER_ACTIVE               =
*    I_BYPASSING_BUFFER            =
*    I_CONSISTENCY_CHECK           =
    i_structure_name              = 'MARA'
*    IS_VARIANT                    =
*    I_SAVE                        =
*    I_DEFAULT                     = 'X'
*    IS_LAYOUT                     =
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
*    IR_SALV_ADAPTER               =
  CHANGING
    it_outtab                     = it_mara
*    IT_FIELDCATALOG               =
*    IT_SORT                       =
*    IT_FILTER                     =
*  EXCEPTIONS
*    INVALID_PARAMETER_COMBINATION = 1
*    PROGRAM_ERROR                 = 2
*    TOO_MANY_LINES                = 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.

CALL SCREEN 100.

Reward points if useful,

Aleem.