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

ALV Grid

Former Member
0 Likes
1,023

hi,

If any one have Sample code for ALV Grid using class. send me

hi,

If any one have Sample code for ALV Grid using class. send me

8 REPLIES 8
Read only

Former Member
0 Likes
986

Hi, Check the code,

REPORT Z_ALV_OOABAP .

TABLES:

spfli.

DATA:

w_grid TYPE REF TO cl_gui_alv_grid,

w_container TYPE REF TO cl_gui_custom_container.

DATA:

t_spfli LIKE STANDARD TABLE OF spfli WITH HEADER LINE,

wa_field_catalog TYPE lvc_s_fcat,

t_field_catalog TYPE lvc_t_fcat,

wa_layout TYPE lvc_s_layo.

SELECT * FROM spfli INTO TABLE t_spfli.

CALL SCREEN '0100'.

&----


*& Module set_layout OUTPUT

&----


  • text

----


MODULE set_layout OUTPUT.

wa_layout-grid_title = 'SPFLI TABLE DETAILS'.

wa_layout-zebra = 'X'.

ENDMODULE. " set_layout OUTPUT

&----


*& Module field_catalog OUTPUT

&----


  • text

----


MODULE field_catalog OUTPUT.

CLEAR wa_field_catalog.

wa_field_catalog-fieldname = 'CARRID'.

wa_field_catalog-ref_field = 'CARRID'.

wa_field_catalog-ref_table = 'SPFLI'.

wa_field_catalog-col_pos = 1.

APPEND wa_field_catalog TO t_field_catalog.

CLEAR wa_field_catalog.

wa_field_catalog-fieldname = 'CONNID'.

wa_field_catalog-ref_field = 'CONNID'.

wa_field_catalog-ref_table = 'SPFLI'.

wa_field_catalog-col_pos = 2.

APPEND wa_field_catalog TO t_field_catalog.

CLEAR wa_field_catalog.

wa_field_catalog-fieldname = 'CITYFROM'.

wa_field_catalog-ref_field = 'CITYFROM'.

wa_field_catalog-ref_table = 'SPFLI'.

wa_field_catalog-col_pos = 3.

APPEND wa_field_catalog TO t_field_catalog.

CLEAR wa_field_catalog.

wa_field_catalog-fieldname = 'CITYTO'.

wa_field_catalog-ref_field = 'CITYTO'.

wa_field_catalog-ref_table = 'SPFLI'.

wa_field_catalog-col_pos = 4.

APPEND wa_field_catalog TO t_field_catalog.

CLEAR wa_field_catalog.

wa_field_catalog-fieldname = 'DISTANCE'.

wa_field_catalog-ref_field = 'DISTANCE'.

wa_field_catalog-ref_table = 'SPFLI'.

wa_field_catalog-col_pos = 5.

wa_field_catalog-do_sum = 'X'.

wa_field_catalog-Emphasize = 'X'.

wa_field_catalog-Hotspot = 'X'.

APPEND wa_field_catalog TO t_field_catalog.

ENDMODULE. " field_catalog OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE user_command_0100 INPUT.

CASE sy-ucomm.

WHEN 'BACK'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Module manage_alv_grid OUTPUT

&----


  • text

----


MODULE manage_alv_grid OUTPUT.

IF w_grid IS INITIAL.

CREATE OBJECT w_container

EXPORTING

container_name = 'CONTAINER1'

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 w_grid

EXPORTING

i_parent = w_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.

CALL METHOD w_grid->set_table_for_first_display

EXPORTING

i_structure_name = 'SPFLI'

is_layout = wa_layout

CHANGING

it_outtab = t_spfli[]

it_fieldcatalog = t_field_catalog

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.

ELSE.

MESSAGE 'GRID IS NOT INITAL' TYPE 'I'.

ENDIF.

ENDMODULE. " manage_alv_grid OUTPUT

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE status_0100 OUTPUT.

SET PF-STATUS 'ALVS_GUI'.

SET TITLEBAR 'TIT'.

ENDMODULE. " STATUS_0100 OUTPUT

Regards,

Anirban

Read only

uwe_schieferstein
Active Contributor
0 Likes
986

Hello Rakesh

You may have a look at one of my sample reports ZUS_SDN_... :

Regards

Uwe

Read only

narin_nandivada3
Active Contributor
0 Likes
986

Hi,

please Check this code...



TABLES:
    spfli.

TYPES:
  BEGIN OF fs_spfli,
    carrid   TYPE spfli-carrid,
    connid   TYPE spfli-connid,
    cityfrom TYPE spfli-cityfrom,
    cityto   TYPE spfli-cityto,
  END OF fs_spfli.


*"Selection screen elements............................................
SELECT-OPTIONS:
  s_carrid FOR spfli-carrid,           " Airline code
  s_connid FOR spfli-connid.           " Flight connection number

*"--------------------------------------------------------------------*
* Internal table to hold spfli details                                *
*"--------------------------------------------------------------------*
DATA:
  t_spfli TYPE
 STANDARD TABLE
       OF fs_spfli,

  wa_spfli LIKE LINE OF t_spfli.       " Workarea for spfli details

*"--------------------------------------------------------------------*
* Internal table to hold field catalog details                        *
*"--------------------------------------------------------------------*
DATA:
   t_fcat TYPE  lvc_t_fcat,
   wa_fcat TYPE lvc_s_fcat.

*" Data declarations...................................................
*"--------------------------------------------------------------------*
*  Work variables                                                      *
*"--------------------------------------------------------------------*
DATA:
  w_grid TYPE REF TO
              cl_gui_alv_grid,         " Grid reference
  w_container TYPE REF TO
              cl_gui_custom_container, " Container reference
  w_layout TYPE lvc_s_layo,            " Layout structure
  w_cont_name TYPE
              scrfname VALUE 'CC_ALV'. " Container name

*Calling screen
CALL SCREEN 1152.                      

*---------------------------------------------------------------------*
*  Module  status_1152  OUTPUT
*---------------------------------------------------------------------*
*  This module is used to set the GUI Status
*---------------------------------------------------------------------*
MODULE status_1152 OUTPUT.
  SET PF-STATUS 'ALV_GUI'.
ENDMODULE.                 " status_1152  OUTPUT

*---------------------------------------------------------------------*
*  Module  display_alv  OUTPUT
*---------------------------------------------------------------------*
*  This module is used to display ALV
*---------------------------------------------------------------------*
MODULE display_alv OUTPUT.
  PERFORM get_spfli_details.
  PERFORM container_reference.
  PERFORM grid_reference.
  PERFORM prepare_field_catalog.
  PERFORM prepare_grid_layout.
  PERFORM display_alv.
ENDMODULE.                 " display_alv  OUTPUT

*---------------------------------------------------------------------*
*      Module  USER_COMMAND_1152  INPUT
*---------------------------------------------------------------------*
* This module is used to act upon user interaction in the output
*---------------------------------------------------------------------*
MODULE user_command_1152 INPUT.
  CASE sy-ucomm.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
    WHEN 'EXIT'.
      LEAVE.
  ENDCASE.                             " CASE SY-UCOMM
ENDMODULE.                 " USER_COMMAND_1152  INPUT


*---------------------------------------------------------------------*
*  Form  container_reference
*---------------------------------------------------------------------*
*  This subroutine is used to create instance for container class
*---------------------------------------------------------------------*
*  No interface parameters
*---------------------------------------------------------------------*
FORM container_reference .
*Creating custom container reference

  CREATE OBJECT w_container
    EXPORTING
*      PARENT                      =
      container_name              = w_cont_name
*      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 'S' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                               " container_reference

*---------------------------------------------------------------------*
*  Form  grid_reference
*---------------------------------------------------------------------*
*  This subroutine is used to create instance for container class
*---------------------------------------------------------------------*
*  No interface parameters
*---------------------------------------------------------------------*
FORM grid_reference .

  CREATE OBJECT w_grid
    EXPORTING
*      I_SHELLSTYLE      = 0
*      I_LIFETIME        =
      i_parent          = w_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 'S' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                               " grid_reference


*&---------------------------------------------------------------------*
*& Form  prepare_field_catalog
*&---------------------------------------------------------------------*
*  This subroutine is used to define the field catalog
*----------------------------------------------------------------------*
*  No interface parameters
*----------------------------------------------------------------------*
FORM prepare_field_catalog .
  CLEAR:
    wa_fcat,
    t_fcat[].
  wa_fcat-fieldname = 'CARRID'.
  wa_fcat-ref_table = 'SPFLI'.
  wa_fcat-ref_field = 'CARRID'.
  wa_fcat-coltext   = 'Airline Code'.
  wa_fcat-seltext   = 'Airline Code'.
  APPEND wa_fcat TO t_fcat.

  CLEAR wa_fcat.
  wa_fcat-fieldname = 'CONNID'.
  wa_fcat-ref_table = 'SPFLI'.
  wa_fcat-ref_field = 'CONNID'.
  wa_fcat-coltext   = 'Connection ID'.
  wa_fcat-seltext   = 'Connection ID'.
  APPEND wa_fcat TO t_fcat.

  CLEAR wa_fcat.
  wa_fcat-fieldname = 'CITYFROM'.
  wa_fcat-ref_table = 'SPFLI'.
  wa_fcat-ref_field = 'CITYFROM'.
  wa_fcat-coltext   = 'City from'.
  wa_fcat-seltext   = 'City from'.
  APPEND wa_fcat TO t_fcat.

  CLEAR wa_fcat.
  wa_fcat-fieldname = 'CITYTO'.
  wa_fcat-ref_table = 'SPFLI'.
  wa_fcat-ref_field = 'CITYTO'.
  wa_fcat-coltext   = 'City to'.
  wa_fcat-seltext   = 'City to'.
  APPEND wa_fcat TO t_fcat.

ENDFORM.                               " prepare_field_catalog

*---------------------------------------------------------------------*
*  Form  prepare_grid_layout
*---------------------------------------------------------------------*
*  This subroutine is used to define the layout for the grid
*---------------------------------------------------------------------*
*  No interface parameters
*---------------------------------------------------------------------*
FORM prepare_grid_layout .
  w_layout-zebra = 'X'.
  w_layout-grid_title = 'SPFLI Details'.
*  w_layout-edit_mode = 'X'.
ENDFORM.                               " prepare_grid_layout

*---------------------------------------------------------------------*
*  Form  display_alv
*---------------------------------------------------------------------*
*  This subroutine is used to display ALV
*---------------------------------------------------------------------*
*  No interface parameters
*---------------------------------------------------------------------*
FORM display_alv .

  w_grid->set_table_for_first_display(
    EXPORTING
*      I_BUFFER_ACTIVE               = 'X'
*      I_BYPASSING_BUFFER            = I_BYPASSING_BUFFER
*      I_CONSISTENCY_CHECK           = I_CONSISTENCY_CHECK
*      I_STRUCTURE_NAME              = I_STRUCTURE_NAME
*      IS_VARIANT                    = IS_VARIANT
*      I_SAVE                        = I_SAVE
*      I_DEFAULT                     = 'X'
      is_layout                     = w_layout
*      IS_PRINT                      = IS_PRINT
*      IT_SPECIAL_GROUPS             = IT_SPECIAL_GROUPS
*      IT_TOOLBAR_EXCLUDING          = IT_TOOLBAR_EXCLUDING
*      IT_HYPERLINK                  = IT_HYPERLINK
*      IT_ALV_GRAPHICS               = IT_ALV_GRAPHICS
*      IT_EXCEPT_QINFO               = IT_EXCEPT_QINFO
*      IR_SALV_ADAPTER               = IR_SALV_ADAPTER
    CHANGING
      it_outtab                     = t_spfli
      it_fieldcatalog               = t_fcat
*      IT_SORT                       = IT_SORT
*      IT_FILTER                     = IT_FILTER
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error                 = 2
      too_many_lines                = 3
         ).
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
               WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.

ENDFORM.                    " display_alv

*---------------------------------------------------------------------*
*  Form  get_spfli_details
*---------------------------------------------------------------------*
*  This subroutine is used to get the spfli details
*---------------------------------------------------------------------*
*  No interface parameters
*---------------------------------------------------------------------*
FORM get_spfli_details .

  SELECT carrid
         connid
         cityfrom
         cityto
    FROM spfli
    INTO TABLE t_spfli
   WHERE carrid IN s_carrid
     AND connid IN s_connid.

  SORT t_spfli BY carrid connid.
ENDFORM.                    " get_spfli_details

Before executing that create a screen in SE51 for this program

and put the Custom control on the screen Layout and name it as

CC_ALV... and activate the screen and define the

MODULE display_alv in PBO of the flow logic...

and also uncomment the Status module in PBO and user command module in PAI.

Hope this would solve your issue....

Good luck....

Narin

Read only

Former Member
0 Likes
986

Hii!

Check this code. Before executinf this program define screen.


REPORT  z_alv1.

DATA:
  w_carrid TYPE sflight-carrid,
  w_connid TYPE sflight-connid.

DATA:
  r_cont TYPE REF TO cl_gui_custom_container,
  r_grid TYPE REF TO cl_gui_alv_grid.

DATA:
  t_fieldcat TYPE lvc_t_fcat,
  fs_fieldcat LIKE LINE OF t_fieldcat.

TYPES:
  BEGIN OF types_flight,
    carrid   TYPE sflight-carrid,
    connid   TYPE sflight-connid,
    fldate   TYPE sflight-fldate,
    price    TYPE sflight-price,
    currency TYPE sflight-currency,
  END OF types_flight.

DATA:
  fs_flight TYPE types_flight,
  t_flight LIKE
     TABLE OF
           fs_flight.

SELECT-OPTIONS:
  s_carrid FOR w_carrid,
  s_connid FOR w_connid.


START-OF-SELECTION.

  PERFORM get_data.
  CALL SCREEN '0100'.

*&---------------------------------------------------------------------
*
*&      Form  get_data
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------
*
FORM get_data .
  SELECT carrid
         connid
         fldate
         price
         currency
    FROM sflight
    INTO TABLE t_flight
   WHERE carrid IN s_carrid
     AND connid IN s_connid.


ENDFORM.                    " get_data
*&---------------------------------------------------------------------
*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'STATUS1'.
  SET TITLEBAR 'TITLE1'.
ENDMODULE.                 " STATUS_0100  OUTPUT
*&---------------------------------------------------------------------
*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
MODULE user_command_0100 INPUT.

  CASE sy-ucomm.
    WHEN 'BACK'.
      LEAVE TO SCREEN '0'.
  ENDCASE.

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------
*
*&      Module  alv_grid  OUTPUT
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
MODULE alv_grid OUTPUT.
  CREATE OBJECT r_cont
    EXPORTING

      container_name              = 'CONTAINER_1'
    EXCEPTIONS
      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 r_grid
    EXPORTING
      i_parent          = r_cont
    EXCEPTIONS
      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.

  PERFORM build_fieldcat.

  CALL METHOD r_grid->set_table_for_first_display
    CHANGING
      it_outtab                     = t_flight
      it_fieldcatalog               = t_fieldcat
*      IT_SORT                       =
*      IT_FILTER                     =
    EXCEPTIONS
      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.

ENDMODULE.                 " alv_grid  OUTPUT
*&---------------------------------------------------------------------
*
*&      Form  build_fieldcat
*&---------------------------------------------------------------------
*
*       text
*----------------------------------------------------------------------
*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------
*
FORM build_fieldcat .
  fs_fieldcat-fieldname = 'CARRID'.
  fs_fieldcat-tabname   = 'T_FLIGHT'.
  fs_fieldcat-scrtext_m = 'Airline Carrier ID'.
  APPEND fs_fieldcat TO t_fieldcat.

  CLEAR fs_fieldcat.
  fs_fieldcat-fieldname = 'CONNID'.
  fs_fieldcat-tabname   = 'T_FLIGHT'.
  fs_fieldcat-lzero     = ''.
  fs_fieldcat-scrtext_m = 'Flight Conn ID'.
  APPEND fs_fieldcat TO t_fieldcat.

  CLEAR fs_fieldcat.
  fs_fieldcat-fieldname = 'FLDATE'.
  fs_fieldcat-tabname   = 'T_FLIGHT'.
  fs_fieldcat-scrtext_m = 'Flight Date'.
  APPEND fs_fieldcat TO t_fieldcat.

  CLEAR fs_fieldcat.
  fs_fieldcat-fieldname = 'PRICE'.
  fs_fieldcat-tabname   = 'T_FLIGHT'.
  fs_fieldcat-scrtext_m = 'Price'.
  APPEND fs_fieldcat TO t_fieldcat.

  CLEAR fs_fieldcat.
  fs_fieldcat-fieldname = 'CURRENCY'.
  fs_fieldcat-tabname   = 'T_FLIGHT'.
  fs_fieldcat-scrtext_m = 'Currency'.
  APPEND fs_fieldcat TO t_fieldcat.

ENDFORM.                    " build_fieldcat

Regards
Abhijeet

Read only

Former Member
Read only

JoffyJohn
Active Contributor
0 Likes
986

Check tcode DWDM. very useful tcode to learn ALV grid

Read only

former_member217544
Active Contributor
0 Likes
986

Hi,

Go through this link,

http://forums.madeitsimple.com/viewtopic.php?f=16&t=23.

It will demonstrate with an example how to handle different events using CL_GUI_ALV_GRID class.

Regards,

Swarna Munukoti.

Read only

former_member69765
Contributor
0 Likes
986

Hi..

Check this out ..

[http://www.abaplearning.com/index.php?option=com_content&view=section&id=2&Itemid=14|http://www.abaplearning.com/index.php?option=com_content&view=section&id=2&Itemid=14]

You need to login to see the code, because this section is only for registered users..

Cheers.

Varun