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 container

Former Member
0 Kudos

hi

i am a new abaper

i have to develop a new alv report in oop.

kindly can anyone send any sample code for alv container

thanks in advance

1 ACCEPTED SOLUTION

Former Member
0 Kudos

Hi,

simple code,

REPORT  z_alv_oops_grid  MESSAGE-ID z7rnp   .


*Data Declaration
*----------------

TABLES:     ekko.

TYPE-POOLS: slis.                                 "ALV Declarations

TYPES: BEGIN OF t_ekko,

  ebeln TYPE ekpo-ebeln,
  ebelp TYPE ekpo-ebelp,
  statu TYPE ekpo-statu,
  aedat TYPE ekpo-aedat,
  matnr TYPE ekpo-matnr,
  menge TYPE ekpo-menge,
  meins TYPE ekpo-meins,
  netpr TYPE ekpo-netpr,
  peinh TYPE ekpo-peinh,

 END OF t_ekko.

DATA: it_ekko     TYPE STANDARD TABLE OF t_ekko ,
      it_ekpo     TYPE STANDARD TABLE OF t_ekko ,
      it_emptytab TYPE STANDARD TABLE OF t_ekko ,
      wa_ekko     TYPE t_ekko,
      wa_ekpo     TYPE t_ekko.

DATA: ok_code LIKE sy-ucomm,           "OK-Code
      save_ok LIKE sy-ucomm.

*ALV data declarations

DATA: fieldcatalog  TYPE lvc_t_fcat WITH HEADER LINE.

DATA: gd_fieldcat   TYPE lvc_t_fcat,
      gd_tab_group  TYPE slis_t_sp_group_alv,
      gd_layout     TYPE slis_layout_alv.

DATA gs_layout TYPE lvc_s_layo .

*ALVtree data declarations

CLASS cl_gui_column_tree DEFINITION LOAD.

CLASS cl_gui_cfw DEFINITION LOAD.

DATA: gd_tree             TYPE REF TO cl_gui_alv_grid,
      gd_hierarchy_header TYPE treev_hhdr,
      gd_report_title     TYPE slis_t_listheader,
      gd_logo             TYPE sdydo_value,
      gd_variant          TYPE disvariant ,
      gd_container        TYPE REF TO cl_gui_custom_container .

*Create container for alv-tree

DATA: gd_tree_container_name(30) TYPE c,
      gd_custom_container        TYPE REF TO cl_gui_custom_container.

*Selection Screen

*SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE text-001.
*SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN .
*SELECTION-SCREEN END OF BLOCK B1.

*Start-of-selection.

START-OF-SELECTION.

* ALVtree setup data

  PERFORM data_retrieval.
  PERFORM build_fieldcatalog.
  PERFORM build_layout.
  PERFORM build_hierarchy_header CHANGING gd_hierarchy_header.
  PERFORM build_report_title USING gd_report_title gd_logo.
  PERFORM build_variant.

* Display ALVtree report

  CALL SCREEN 100.

*&---------------------------------------------------------------------*
*&      Form  DATA_RETRIEVAL
*&---------------------------------------------------------------------*
*       Retrieve data into Internal tables
*----------------------------------------------------------------------*

FORM data_retrieval.
  BREAK-POINT.

  SELECT ebeln
         UP TO 30 ROWS
         FROM ekko
         INTO CORRESPONDING FIELDS OF TABLE it_ekko.

  LOOP AT it_ekko INTO wa_ekko.

    SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
           FROM ekpo APPENDING TABLE it_ekpo
           WHERE ebeln =  wa_ekko-ebeln.
           APPEND wa_ekpo to it_ekpo .

    CLEAR wa_ekpo .

  ENDLOOP .

ENDFORM.                    " DATA_RETRIEVAL

END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       Build Fieldcatalog for ALV Report
*----------------------------------------------------------------------*

FORM build_fieldcatalog .

  fieldcatalog-fieldname   = 'EBELN'.           "Field name in itab
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Purchase Order'.  "Column text
  fieldcatalog-col_pos     = 0.                 "Column position
  fieldcatalog-outputlen   = 15.                "Column width
  fieldcatalog-emphasize   = 'X'.               "Emphasize  (X or SPACE)
  fieldcatalog-key         = 'X'.               "Key Field? (X or SPACE)
 fieldcatalog-do_sum      = 'X'.               "Sum Column?
* fieldcatalog-no_zero     = 'X'.               "Don't display if zero
  APPEND fieldcatalog TO gd_fieldcat.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'EBELP'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'PO Iten'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 1.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'STATU'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Status'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 2.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'AEDAT'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Item Change Date'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 3.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'MATNR'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Material Number'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 4.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'MENGE'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'PO Quantity'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 5.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'MEINS'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Order Unit'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 6.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'NETPR'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Net Price'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 7.
  fieldcatalog-datatype     = 'CURR'.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'PEINH'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Price / Unit'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 8.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

ENDFORM.                    " BUILD_FIELDCATALOG

*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       Build layout for ALV grid report
*----------------------------------------------------------------------*

FORM build_layout.

  gd_layout-no_input           = 'X'.

  gd_layout-colwidth_optimize  = 'X'.

  gd_layout-totals_text        = 'Totals'(201).

  gd_layout-totals_only       = 'X'.
*
*  gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
*                                         "click(press f2)
*
*  gd_layout-zebra             = 'X'.
*
*  gd_layout-group_change_edit = 'X'.
*
*  gd_layout-header_text       = 'helllllo'.
*
ENDFORM.                    " BUILD_LAYOUT

*&---------------------------------------------------------------------*
*&      Form  build_hierarchy_header
*&---------------------------------------------------------------------*
*       build hierarchy-header-information
*----------------------------------------------------------------------*
*      -->P_L_HIERARCHY_HEADER  structure for hierarchy-header
*----------------------------------------------------------------------*

FORM build_hierarchy_header CHANGING
                               p_hierarchy_header TYPE treev_hhdr.

  p_hierarchy_header-heading   = 'Hierarchy Header'(013).

  p_hierarchy_header-tooltip   = 'This is the Hierarchy Header !'(014).

  p_hierarchy_header-width     = 30.

  p_hierarchy_header-width_pix = ' ' .

ENDFORM.                               " build_hierarchy_header

*&---------------------------------------------------------------------*
*&      Form  BUILD_REPORT_TITLE
*&---------------------------------------------------------------------*
*       Build table for ALVtree header
*----------------------------------------------------------------------*
*  <->  p1        Header details
*  <->  p2        Logo value
*----------------------------------------------------------------------*

FORM build_report_title CHANGING
      pt_report_title  TYPE slis_t_listheader
      pa_logo             TYPE sdydo_value.

  DATA: ls_line TYPE slis_listheader,
        ld_date(10) TYPE c.

* List Heading Line(TYPE H)

  CLEAR ls_line.

  ls_line-typ  = 'H'.

* ls_line-key     "Not Used For This Type(H)

  ls_line-info = 'PO ALVTree Display'.

  APPEND ls_line TO pt_report_title.

* Status Line(TYPE S)

  ld_date(2)   = sy-datum+6(2).

  ld_date+2(1) = '/'.

  ld_date+3(2) = sy-datum+4(2).

  ld_date+5(1) = '/'.

  ld_date+6(4) = sy-datum(4).

  ls_line-typ  = 'S'.

  ls_line-key  = 'Date'.

  ls_line-info = ld_date.

  APPEND ls_line TO pt_report_title.

* Action Line(TYPE A)

  CLEAR ls_line.
  ls_line-typ  = 'A'.
  CONCATENATE 'Report: ' sy-repid INTO ls_line-info  SEPARATED BY space.
  APPEND ls_line TO pt_report_title.

ENDFORM.                    "build_report_title

*&---------------------------------------------------------------------*
*&      Form  BUILD_VARIANT
*&---------------------------------------------------------------------*
*       Build variant
*----------------------------------------------------------------------*

FORM build_variant.

* Set repid for storing variants

  gd_variant-report = sy-repid.

ENDFORM.                    " BUILD_VARIANT

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

*MODULE status_0100 OUTPUT.
*
*  SET PF-STATUS 'MENU'.
*
**  SET TITLEBAR 'xxx'.
*
*ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

MODULE user_command_0100 INPUT.

  CASE sy-ucomm .

    WHEN 'EXIT' .

      LEAVE PROGRAM .

  ENDCASE .

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  display_alv  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE display_alv OUTPUT.

  CREATE OBJECT gd_container
               EXPORTING container_name = 'ALV_CONTAINER'.

  IF gd_tree IS INITIAL .

    CREATE OBJECT gd_tree
              EXPORTING i_parent = gd_container .

    CALL METHOD gd_tree->set_table_for_first_display
       EXPORTING
*    I_BYPASSING_BUFFER            =
*    I_BUFFER_ACTIVE               =
*    I_CONSISTENCY_CHECK           =
*    I_STRUCTURE_NAME              =
*    IS_VARIANT                    =
*    I_SAVE                        =
*    I_DEFAULT                     = 'X'
     is_layout                     = gs_layout
*    IS_PRINT                      =
     it_special_groups             = gd_tab_group
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*     IT_ALV_GRAPHICS              =
*    IT_EXCEPT_QINFO               =
     CHANGING
     it_outtab                     = it_ekpo
     it_fieldcatalog               = gd_fieldcat
*    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.

  ENDIF.

ENDMODULE.                 " display_alv  OUTPUT

reward if useful.

7 REPLIES 7

Former Member
0 Kudos

Refer to package SLIS. You have lot of ALV related programs there

Former Member
0 Kudos

Hi,

OOPS ALV in Simple Steps.

1. Be ready with your internal table that you want to display in ALV.

2. Copy paste the following statements in the data declaration section

DATA: ok_code LIKE sy-ucomm,

g_container TYPE scrfname VALUE 'G_CUSTOM_CONTROL',

g_grid TYPE REF TO cl_gui_alv_grid,

g_custom_container TYPE REF TO cl_gui_custom_container.

DATA: gs_layout TYPE lvc_s_layo,

gt_fieldcatalog TYPE lvc_t_fcat.

g_container is the variable which contains the custom control name.

g_grid the reference variable of type cl_gui_alv_grid class.

g_custome_container is the reference variable of type cl_gui_custom_container.

3. After you are ready with the internal table prepare the fieldcatalog and populate the layout structure

4. Create a module pool program for the same report.

“call screen 100.”

Double click on 100 and then you would be navigated to Screen Painter (SE51).

5. Go to layout section, and create a custom control on the screen and name it as ‘G_CUSTOM_CONTROL’. (here you can give any name to the control but you have to take care that the name matches with the value of the g_container variable). Refer following snapshot.

6. Now in the PBO section create a module of any name and enter the following code.

if g_custom_container is initial.

“here we check that if the custom control container is empty then instantiate the “container

create object g_custom_container

exporting container_name = g_container.

“ here we instantiate the grid and assign it to the custom control container.

create object g_grid

exporting i_parent = g_custom_container.

“ by calling this method we can pass the internal table and the layout format of the

“ grid

call method g_grid->set_table_for_first_display

exporting

is_layout = gs_layout

changing

it_outtab = i_mara[]

it_fieldcatalog = gt_fieldcatalog

.

if sy-subrc <> 0.

endif.

endif.

And your OOPs ALV is done.!!!!!

<u><b>Code--</b></u>

REPORT Z_OOPS_ALV .

DATA : BEGIN OF IT_MARA OCCURS 0,

MARK TYPE FLAG,

MATNR TYPE MATNR,

MTART TYPE MTART,

MEINS TYPE MEINS,

MAKTK TYPE MATKL,

END OF IT_MARA.

DATA : BEGIN OF IT_MARA1 OCCURS 0,

MATNR TYPE MATNR,

MTART TYPE MTART,

MEINS TYPE MEINS,

MAKTK TYPE MATKL,

END OF IT_MARA1.

DATA : BEGIN OF IT_MARA2 OCCURS 0,

MATNR TYPE MATNR,

MTART TYPE MTART,

MEINS TYPE MEINS,

MATKL TYPE MATKL ,

END OF IT_MARA2.

DATA : T_FIELDCAT TYPE LVC_T_FCAT,

T_FIELDCAT1 TYPE LVC_T_FCAT,

S_FIELDCAT LIKE LINE OF T_FIELDCAT.

DATA : S_LAYOUT TYPE LVC_S_LAYO.

DATA : CONTROL TYPE REF TO CL_GUI_CUSTOM_CONTAINER,

GRID TYPE REF TO CL_GUI_ALV_GRID.

DATA: BEGIN OF WA ,

MARK TYPE FLAG,

MATNR TYPE MATNR,

MTART TYPE MTART,

MEINS TYPE MEINS,

MATKL TYPE MATKL ,

END OF WA.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001 .

SELECT-OPTIONS: S_MATNR FOR IT_MARA-MATNR .

SELECTION-SCREEN END OF BLOCK B1 .

----


  • CLASS lcl_events_box DEFINITION

----


*

----


CLASS LCL_EVENTS_BOX DEFINITION.

PUBLIC SECTION.

METHODS :

*Handler_Data_Changed for event Data_Changed of cl_gui_alv_grid

*imporTing er_data_changed,

*

HANDLER_USER_COMMAND FOR EVENT USER_COMMAND OF CL_GUI_ALV_GRID

IMPORTING E_UCOMM,

HANDLER_TOOLBAR FOR EVENT TOOLBAR OF CL_GUI_ALV_GRID

IMPORTING E_OBJECT E_INTERACTIVE.

ENDCLASS. "lcl_events_box DEFINITION

----


  • CLASS lcl_events_box IMPLEMENTATION

----


*

----


CLASS LCL_EVENTS_BOX IMPLEMENTATION.

METHOD HANDLER_USER_COMMAND.

PERFORM FORM_USERCOMMAND CHANGING E_UCOMM.

ENDMETHOD. "Handler_user_command

METHOD HANDLER_TOOLBAR.

PERFORM FORM_TOOLBAR CHANGING E_OBJECT E_INTERACTIVE

E_OBJECT->MT_TOOLBAR.

ENDMETHOD. "Handler_ToolBar

ENDCLASS. "lcl_events_box IMPLEMENTATION

START-OF-SELECTION.

DATA : W_EVENTS TYPE REF TO LCL_EVENTS_BOX.

SELECT MATNR

MTART

MEINS

FROM MARA INTO CORRESPONDING FIELDS OF TABLE

IT_MARA

WHERE MATNR IN S_MATNR.

CALL SCREEN 100.

&----


*& Module pbo_module OUTPUT

&----


  • text

----


MODULE PBO_MODULE OUTPUT.

IF GRID IS INITIAL.

CREATE OBJECT CONTROL

EXPORTING

CONTAINER_NAME = 'CUSTOM_CONTROL'.

CREATE OBJECT GRID

EXPORTING

I_PARENT = CONTROL.

PERFORM BUILD_CATALOG.

PERFORM BUILD_CATALOG1.

PERFORM BUILD_LAYOUT.

CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY

EXPORTING

IS_LAYOUT = S_LAYOUT

CHANGING

IT_OUTTAB = IT_MARA[]

IT_FIELDCATALOG = T_FIELDCAT.

CREATE OBJECT W_EVENTS.

SET HANDLER : W_EVENTS->HANDLER_TOOLBAR FOR GRID,

W_EVENTS->HANDLER_USER_COMMAND FOR GRID.

CALL METHOD GRID->SET_TOOLBAR_INTERACTIVE.

ELSE.

CALL METHOD GRID->REFRESH_TABLE_DISPLAY.

ENDIF.

ENDMODULE. " pbo_module OUTPUT

&----


*& Form BUILD_CATALOG

FORM BUILD_CATALOG .

S_FIELDCAT-COL_POS = '1'.

S_FIELDCAT-FIELDNAME = 'MARK'.

S_FIELDCAT-CHECKBOX = 'X'.

S_FIELDCAT-EDIT = 'X'.

APPEND S_FIELDCAT TO T_FIELDCAT.

CLEAR S_FIELDCAT.

S_FIELDCAT-COL_POS = '2'.

S_FIELDCAT-FIELDNAME = 'MATNR'.

S_FIELDCAT-SCRTEXT_M = 'MATERIAL NO'.

APPEND S_FIELDCAT TO T_FIELDCAT.

S_FIELDCAT-COL_POS = '3'.

S_FIELDCAT-FIELDNAME = 'MTART'.

S_FIELDCAT-SCRTEXT_M = 'MATERL TYPE'.

APPEND S_FIELDCAT TO T_FIELDCAT.

S_FIELDCAT-COL_POS = '4'.

S_FIELDCAT-FIELDNAME = 'MEINS'.

S_FIELDCAT-SCRTEXT_M = 'UOM'.

APPEND S_FIELDCAT TO T_FIELDCAT.

ENDFORM. " BUILD_CATALOG

&----


*& Form BUILD_LAYOUT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_LAYOUT .

S_LAYOUT-ZEBRA = 'X'.

  • S_LAYOUT-CWIDTH_OPT = 'X'.

S_LAYOUT-GRID_TITLE = 'Material Details'.

ENDFORM. "BUILD_LAYOUT

&----


*& Form FORM_USERCOMMAND

&----


  • text

----


  • <--P_E_UCOMM text

----


FORM FORM_USERCOMMAND CHANGING P_E_UCOMM.

CASE P_E_UCOMM.

WHEN 'INT1'.

  • DO.

READ TABLE IT_MARA INDEX SY-INDEX TRANSPORTING MARK MATNR.

IF SY-SUBRC <> 0.

EXIT.

ENDIF.

IF IT_MARA-MARK = 'X'.

READ TABLE IT_MARA INTO WA TRANSPORTING MATNR MTART MEINS .

MOVE-CORRESPONDING WA TO IT_MARA1.

READ TABLE IT_MARA1 TRANSPORTING MATNR MTART MEINS .

MOVE-CORRESPONDING IT_MARA1 TO IT_MARA2.

APPEND IT_MARA2.

CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY

EXPORTING

IS_LAYOUT = S_LAYOUT

CHANGING

IT_OUTTAB = IT_MARA2[]

IT_FIELDCATALOG = T_FIELDCAT1.

*

  • SET PARAMETER ID 'MAT' FIELD IT_MARA-MATNR.

  • CALL TRANSACTION 'MM02'.

.

ENDIF.

  • ENDIF.

  • ENDDO.

WHEN 'GRPH'.

WRITE:/ ' No graph maintained'.

ENDCASE.

ENDFORM. " FORM_USERCOMMAND

&----


*& Form FORM_TOOLBAR

&----


  • text

----


  • <--P_E_OBJECT text

  • <--P_E_INTERACTIVE text

  • <--P_E_OBJECT_>MT_TOOLBAR text

----


FORM FORM_TOOLBAR CHANGING P_E_OBJECT TYPE REF TO

CL_ALV_EVENT_TOOLBAR_SET

P_E_INTERACTIVE

MT_TOOLBAR TYPE TTB_BUTTON.

REFRESH MT_TOOLBAR.

DATA WAL_BUTTON TYPE STB_BUTTON.

  • WAL_BUTTON-ICON = CON_status_reverse.

WAL_BUTTON-TEXT = 'GO'.

WAL_BUTTON-QUICKINFO = 'PROCEED'.

WAL_BUTTON-FUNCTION = 'INT1'.

WAL_BUTTON-BUTN_TYPE = 0.

WAL_BUTTON-DISABLED = 'X'.

INSERT WAL_BUTTON INTO P_E_OBJECT->MT_TOOLBAR INDEX 1.

  • WAL_BUTTON-TEXT = 'GO'.

  • WAL_BUTTON-QUICKINFO = 'PROCEED'.

  • WAL_BUTTON-FUNCTION = 'INT1'.

  • WAL_BUTTON-BUTN_TYPE = 0.

  • WAL_BUTTON-DISABLED = SPACE.

  • INSERT WAL_BUTTON INTO P_E_OBJECT->MT_TOOLBAR INDEX 1.

WAL_BUTTON-TEXT = 'GO'.

WAL_BUTTON-QUICKINFO = 'Graph Display'.

WAL_BUTTON-FUNCTION = 'GRPH'.

WAL_BUTTON-ICON = 'ICON_GRAPHICS'.

WAL_BUTTON-BUTN_TYPE = 0.

WAL_BUTTON-DISABLED = SPACE.

INSERT WAL_BUTTON INTO P_E_OBJECT->MT_TOOLBAR INDEX 1.

ENDFORM. " FORM_TOOLBAR

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

CASE SY-UCOMM.

WHEN 'EXIT'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

&----


*& Form BUILD_CATALOG1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_CATALOG1 .

S_FIELDCAT-COL_POS = '1'.

S_FIELDCAT-FIELDNAME = 'MATNR'.

S_FIELDCAT-SCRTEXT_M = 'MATERIAL NO'.

APPEND S_FIELDCAT TO T_FIELDCAT1.

S_FIELDCAT-COL_POS = '2'.

S_FIELDCAT-FIELDNAME = 'MTART'.

S_FIELDCAT-SCRTEXT_M = 'MATERL TYPE'.

APPEND S_FIELDCAT TO T_FIELDCAT1.

S_FIELDCAT-COL_POS = '3'.

S_FIELDCAT-FIELDNAME = 'MEINS'.

S_FIELDCAT-SCRTEXT_M = 'UOM'.

APPEND S_FIELDCAT TO T_FIELDCAT1.

  • S_FIELDCAT-COL_POS = '4' .

  • S_FIELDCAT-FIELDNAME = 'MATKL' .

  • S_FIELDCAT-SCRTEXT_M = 'MATERIAL GROUP' .

  • APPEND S_FIELDCAT TO T_FIELDCAT1.

ENDFORM. " BUILD_CATALOG1

reward if useful.

Former Member
0 Kudos

Hi,

simple code,

REPORT  z_alv_oops_grid  MESSAGE-ID z7rnp   .


*Data Declaration
*----------------

TABLES:     ekko.

TYPE-POOLS: slis.                                 "ALV Declarations

TYPES: BEGIN OF t_ekko,

  ebeln TYPE ekpo-ebeln,
  ebelp TYPE ekpo-ebelp,
  statu TYPE ekpo-statu,
  aedat TYPE ekpo-aedat,
  matnr TYPE ekpo-matnr,
  menge TYPE ekpo-menge,
  meins TYPE ekpo-meins,
  netpr TYPE ekpo-netpr,
  peinh TYPE ekpo-peinh,

 END OF t_ekko.

DATA: it_ekko     TYPE STANDARD TABLE OF t_ekko ,
      it_ekpo     TYPE STANDARD TABLE OF t_ekko ,
      it_emptytab TYPE STANDARD TABLE OF t_ekko ,
      wa_ekko     TYPE t_ekko,
      wa_ekpo     TYPE t_ekko.

DATA: ok_code LIKE sy-ucomm,           "OK-Code
      save_ok LIKE sy-ucomm.

*ALV data declarations

DATA: fieldcatalog  TYPE lvc_t_fcat WITH HEADER LINE.

DATA: gd_fieldcat   TYPE lvc_t_fcat,
      gd_tab_group  TYPE slis_t_sp_group_alv,
      gd_layout     TYPE slis_layout_alv.

DATA gs_layout TYPE lvc_s_layo .

*ALVtree data declarations

CLASS cl_gui_column_tree DEFINITION LOAD.

CLASS cl_gui_cfw DEFINITION LOAD.

DATA: gd_tree             TYPE REF TO cl_gui_alv_grid,
      gd_hierarchy_header TYPE treev_hhdr,
      gd_report_title     TYPE slis_t_listheader,
      gd_logo             TYPE sdydo_value,
      gd_variant          TYPE disvariant ,
      gd_container        TYPE REF TO cl_gui_custom_container .

*Create container for alv-tree

DATA: gd_tree_container_name(30) TYPE c,
      gd_custom_container        TYPE REF TO cl_gui_custom_container.

*Selection Screen

*SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE text-001.
*SELECT-OPTIONS: S_EBELN FOR EKKO-EBELN .
*SELECTION-SCREEN END OF BLOCK B1.

*Start-of-selection.

START-OF-SELECTION.

* ALVtree setup data

  PERFORM data_retrieval.
  PERFORM build_fieldcatalog.
  PERFORM build_layout.
  PERFORM build_hierarchy_header CHANGING gd_hierarchy_header.
  PERFORM build_report_title USING gd_report_title gd_logo.
  PERFORM build_variant.

* Display ALVtree report

  CALL SCREEN 100.

*&---------------------------------------------------------------------*
*&      Form  DATA_RETRIEVAL
*&---------------------------------------------------------------------*
*       Retrieve data into Internal tables
*----------------------------------------------------------------------*

FORM data_retrieval.
  BREAK-POINT.

  SELECT ebeln
         UP TO 30 ROWS
         FROM ekko
         INTO CORRESPONDING FIELDS OF TABLE it_ekko.

  LOOP AT it_ekko INTO wa_ekko.

    SELECT ebeln ebelp statu aedat matnr menge meins netpr peinh
           FROM ekpo APPENDING TABLE it_ekpo
           WHERE ebeln =  wa_ekko-ebeln.
           APPEND wa_ekpo to it_ekpo .

    CLEAR wa_ekpo .

  ENDLOOP .

ENDFORM.                    " DATA_RETRIEVAL

END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       Build Fieldcatalog for ALV Report
*----------------------------------------------------------------------*

FORM build_fieldcatalog .

  fieldcatalog-fieldname   = 'EBELN'.           "Field name in itab
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Purchase Order'.  "Column text
  fieldcatalog-col_pos     = 0.                 "Column position
  fieldcatalog-outputlen   = 15.                "Column width
  fieldcatalog-emphasize   = 'X'.               "Emphasize  (X or SPACE)
  fieldcatalog-key         = 'X'.               "Key Field? (X or SPACE)
 fieldcatalog-do_sum      = 'X'.               "Sum Column?
* fieldcatalog-no_zero     = 'X'.               "Don't display if zero
  APPEND fieldcatalog TO gd_fieldcat.
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'EBELP'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'PO Iten'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 1.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'STATU'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Status'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 2.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'AEDAT'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Item Change Date'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 3.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'MATNR'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Material Number'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 4.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'MENGE'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'PO Quantity'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 5.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'MEINS'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Order Unit'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 6.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'NETPR'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Net Price'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 7.
  fieldcatalog-datatype     = 'CURR'.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

  fieldcatalog-fieldname   = 'PEINH'.
  fieldcatalog-tabname     = 'IT_EKPO'.
  fieldcatalog-scrtext_m   = 'Price / Unit'.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-col_pos     = 8.
  APPEND fieldcatalog TO gd_fieldcat..
  CLEAR  fieldcatalog.

ENDFORM.                    " BUILD_FIELDCATALOG

*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       Build layout for ALV grid report
*----------------------------------------------------------------------*

FORM build_layout.

  gd_layout-no_input           = 'X'.

  gd_layout-colwidth_optimize  = 'X'.

  gd_layout-totals_text        = 'Totals'(201).

  gd_layout-totals_only       = 'X'.
*
*  gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
*                                         "click(press f2)
*
*  gd_layout-zebra             = 'X'.
*
*  gd_layout-group_change_edit = 'X'.
*
*  gd_layout-header_text       = 'helllllo'.
*
ENDFORM.                    " BUILD_LAYOUT

*&---------------------------------------------------------------------*
*&      Form  build_hierarchy_header
*&---------------------------------------------------------------------*
*       build hierarchy-header-information
*----------------------------------------------------------------------*
*      -->P_L_HIERARCHY_HEADER  structure for hierarchy-header
*----------------------------------------------------------------------*

FORM build_hierarchy_header CHANGING
                               p_hierarchy_header TYPE treev_hhdr.

  p_hierarchy_header-heading   = 'Hierarchy Header'(013).

  p_hierarchy_header-tooltip   = 'This is the Hierarchy Header !'(014).

  p_hierarchy_header-width     = 30.

  p_hierarchy_header-width_pix = ' ' .

ENDFORM.                               " build_hierarchy_header

*&---------------------------------------------------------------------*
*&      Form  BUILD_REPORT_TITLE
*&---------------------------------------------------------------------*
*       Build table for ALVtree header
*----------------------------------------------------------------------*
*  <->  p1        Header details
*  <->  p2        Logo value
*----------------------------------------------------------------------*

FORM build_report_title CHANGING
      pt_report_title  TYPE slis_t_listheader
      pa_logo             TYPE sdydo_value.

  DATA: ls_line TYPE slis_listheader,
        ld_date(10) TYPE c.

* List Heading Line(TYPE H)

  CLEAR ls_line.

  ls_line-typ  = 'H'.

* ls_line-key     "Not Used For This Type(H)

  ls_line-info = 'PO ALVTree Display'.

  APPEND ls_line TO pt_report_title.

* Status Line(TYPE S)

  ld_date(2)   = sy-datum+6(2).

  ld_date+2(1) = '/'.

  ld_date+3(2) = sy-datum+4(2).

  ld_date+5(1) = '/'.

  ld_date+6(4) = sy-datum(4).

  ls_line-typ  = 'S'.

  ls_line-key  = 'Date'.

  ls_line-info = ld_date.

  APPEND ls_line TO pt_report_title.

* Action Line(TYPE A)

  CLEAR ls_line.
  ls_line-typ  = 'A'.
  CONCATENATE 'Report: ' sy-repid INTO ls_line-info  SEPARATED BY space.
  APPEND ls_line TO pt_report_title.

ENDFORM.                    "build_report_title

*&---------------------------------------------------------------------*
*&      Form  BUILD_VARIANT
*&---------------------------------------------------------------------*
*       Build variant
*----------------------------------------------------------------------*

FORM build_variant.

* Set repid for storing variants

  gd_variant-report = sy-repid.

ENDFORM.                    " BUILD_VARIANT

*&---------------------------------------------------------------------*
*&      Module  STATUS_0100  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

*MODULE status_0100 OUTPUT.
*
*  SET PF-STATUS 'MENU'.
*
**  SET TITLEBAR 'xxx'.
*
*ENDMODULE.                 " STATUS_0100  OUTPUT

*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*

MODULE user_command_0100 INPUT.

  CASE sy-ucomm .

    WHEN 'EXIT' .

      LEAVE PROGRAM .

  ENDCASE .

ENDMODULE.                 " USER_COMMAND_0100  INPUT
*&---------------------------------------------------------------------*
*&      Module  display_alv  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE display_alv OUTPUT.

  CREATE OBJECT gd_container
               EXPORTING container_name = 'ALV_CONTAINER'.

  IF gd_tree IS INITIAL .

    CREATE OBJECT gd_tree
              EXPORTING i_parent = gd_container .

    CALL METHOD gd_tree->set_table_for_first_display
       EXPORTING
*    I_BYPASSING_BUFFER            =
*    I_BUFFER_ACTIVE               =
*    I_CONSISTENCY_CHECK           =
*    I_STRUCTURE_NAME              =
*    IS_VARIANT                    =
*    I_SAVE                        =
*    I_DEFAULT                     = 'X'
     is_layout                     = gs_layout
*    IS_PRINT                      =
     it_special_groups             = gd_tab_group
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*     IT_ALV_GRAPHICS              =
*    IT_EXCEPT_QINFO               =
     CHANGING
     it_outtab                     = it_ekpo
     it_fieldcatalog               = gd_fieldcat
*    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.

  ENDIF.

ENDMODULE.                 " display_alv  OUTPUT

reward if useful.

Former Member
0 Kudos

For ALV Report using OOPs Concept, here is the sample text code. kindly close the thread and point if it works:

SE24: Create a Class. Create Method Constructor....>Level"Instance" , Visibility "Public", write the method for it by double clicking

Code sample: METHOD constructor.

CREATE OBJECT o_cont

EXPORTING

container_name = p_cont.

IF sy-subrc = 0.

CREATE OBJECT o_grid

EXPORTING

i_parent = o_cont.

ENDIF.

ENDMETHOD.

Assign Parameter p_cont , with Associated Type say "Char32".

Method Get_Data to select data

Code sample: method GET_DATA.

select

vbeln

audat

kunnr

vkorg

netwr

from vbak

into corresponding fields of table it_so

where kunnr in s_cust.

if not it_so[] is initial.

call method put_data.

endif.

endmethod.

Parameter /Select-Options for Get_data...say S_Cust Type "Importing" associated type say"Zkunnr". Zkunnr is a table type with line-type say "WSELKUNNR" -a structure with components "SIGN, OPTIOn,LOW,HIGH" for select options. Create ur own table type in SE11 and LineType.

Method Display_Data with Sample Code: METHOD put_data.

DATA: it_fldcat TYPE lvc_t_fcat,

wa_fldcat LIKE LINE OF it_fldcat.

DATA: it_sort TYPE lvc_t_sort,

wa_sort LIKE LINE OF it_sort.

CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'

EXPORTING

  • I_BUFFER_ACTIVE =

i_structure_name = 'Z_SALES'

  • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_BYPASSING_BUFFER =

  • I_INTERNAL_TABNAME =

CHANGING

ct_fieldcat = it_fldcat[]

  • 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.

EXIT.

ELSE.

LOOP AT it_fldcat INTO wa_fldcat.

CASE wa_fldcat-fieldname.

WHEN 'VBELN'.

wa_fldcat-reptext = 'SO_No'.

wa_fldcat-ref_table = 'X'.

WHEN 'AUDAT'.

wa_fldcat-reptext = 'SO_Date'.

wa_fldcat-ref_table = 'X'.

WHEN 'KUNNR'.

wa_fldcat-reptext = 'Cust_No'.

wa_fldcat-ref_table = 'X'.

WHEN 'VKORG'.

wa_fldcat-reptext = 'SO_Org'.

wa_fldcat-ref_table = 'X'.

WHEN 'NETWR'.

wa_fldcat-reptext = 'Net_Value'.

wa_fldcat-do_sum = 'X'.

ENDCASE.

MODIFY it_fldcat FROM wa_fldcat INDEX sy-tabix.

ENDLOOP.

wa_sort-fieldname = 'KUNNR'.

wa_sort-up = 'X'.

wa_sort-subtot = 'X'.

APPEND wa_sort TO it_sort.

ENDIF.

CALL METHOD o_grid->set_table_for_first_display

  • EXPORTING

  • i_buffer_active =

  • i_bypassing_buffer =

  • i_consistency_check =

  • i_structure_name =

  • 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_so[]

it_fieldcatalog = it_fldcat[]

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

ENDMETHOD.

Now go to "Attribute Tab"

1)o_cont, Level:Instance, Private,Type Ref, CL_GUI_CUSTOM_CONTAINER

2)o_grid, Instance, Private, Type ref,CL_GUI_ALV_GRID

3)it_SO, instance,Private, type, z_sales(say for e.g)

Now save these and activate

SE38(Executable Program but you'll need to link this to a Screen painter in se51 to create container for ALV Grid

Code: &----


*& Module Pool ZCL_ALV

*&

&----


*&

*&

&----


REPORT zcl_alv.

TABLES: kna1.

DATA : x TYPE REF TO zcl_alv.

DATA: l_kunnr TYPE STANDARD TABLE OF wselkunnr.

SELECT-OPTIONS : s_kunnr FOR kna1-kunnr.

START-OF-SELECTION .

SET SCREEN 1000.

&----


*& Module STATUS_1000 OUTPUT

&----


  • text

----


MODULE status_1000 OUTPUT.

SET PF-STATUS 'OBJ'.

SET TITLEBAR 'T001'.

IF x IS INITIAL.

CREATE OBJECT x

EXPORTING

p_cont = 'SALES_DATA'.

ENDIF.

l_kunnr[] = s_kunnr[].

CALL METHOD x->get_data

EXPORTING

s_cust = l_kunnr.

ENDMODULE. " STATUS_1000 OUTPUT

&----


*& Module USER_COMMAND_1000 INPUT

&----


  • text

----


MODULE user_command_1000 INPUT.

CASE sy-ucomm.

WHEN 'BACK' OR 'EXIT' OR 'CANCEL'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " USER_COMMAND_1000 INPUT

///// Set ur PF Status and title bar

SE51- PBO, Module Status_screen number

PAI, Module User_command_screen number

Go to layout "Screen painter"........ Cick on "Custom Control " and Drag to create the Container with name say "Sales_Data

Save and activate. This will work.

Former Member
0 Kudos

Hi,

Sample programs:

http://www.geocities.com/victorav15/sapr3/abap_ood.html#d_grid

http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_color.htm

http://www.sapdevelopment.co.uk/reporting/alvhome.htm

-->download the PDF from following link.

www.abap4.it/download/ALV.pdf

http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCSRVALV/BCSRVALV.pdf

Some more:

http://www.sap-hefte.de/download/dateien/1025/087_leseprobe.pdf

https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/e8a1d690-0201-0010-b7ad-d97...

http://www.alvgmbh.de/dwnload/gonio_t.pdfhttp://

You can get all demo programs for ALV:

Go to se38 and type <b>BCALV*</b> and press F4 for all demo porgrams.

A container is used for the ALV control.The class used for ALV is <b>cl_gui_alv_grid</b> and the custom container used is of class <b>cl_gui_custom_container</b>.

<b>a basic sample program:</b>

In your screen,you should create a control area for the custom controller and name it as 'CONTAINER'.

REPORT SAMPLE.

DATA: alv type ref to cl_gui_alv_GRID,

cont type ref to cl_gui_custom_container,

itab_spfli type table of spfli,

ok_code type sy-ucomm.

START-OF-SELECTION.

select * from spfli into table itab_spfli.

call screen 100.

END-OF-SELECTION.

&----


*& Module STATUS_0100 OUTPUT

&----


  • text

----


MODULE STATUS_0100 OUTPUT.

seT PF-STATUS 'GUI'.

  • SET TITLEBAR 'xxx'.

if cont is initial.

CREATE OBJECT cont

EXPORTING

CONTAINER_NAME = 'CONTAINER'.

CREATE OBJECT ALV

EXPORTING

I_PARENT = CONT.

CALL METHOD ALV->SET_TABLE_FOR_FIRST_DISPLAY

EXPORTING

  • I_BUFFER_ACTIVE =

  • I_BYPASSING_BUFFER =

  • I_CONSISTENCY_CHECK =

I_STRUCTURE_NAME = 'SPFLI'

  • IS_VARIANT =

  • I_SAVE =

  • I_DEFAULT =

  • IS_LAYOUT =

  • IS_PRINT =

  • IT_SPECIAL_GROUPS =

  • IT_TOOLBAR_EXCLUDING =

  • IT_HYPERLINK =

  • IT_ALV_GRAPHICS =

  • IT_EXCEPT_QINFO =

  • IR_SALV_ADAPTER =

CHANGING

IT_OUTTAB = itab_spfli

  • 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.

ENDIF.

ENDMODULE. " STATUS_0100 OUTPUT

&----


*& Module USER_COMMAND_0100 INPUT

&----


  • text

----


MODULE USER_COMMAND_0100 INPUT.

case ok_code.

when 'BACK'.

leave to screen 0.

when 'EXIT'.

leave to screen 0.

when 'SAVE'.

MODIFY spfli from table itab_spfli.

ENDCASE.

Regards,

Beejal

**Reward if this helps

Former Member
0 Kudos

if you have ecc 6.0 then you can use CL_GUI_SALV_GRID.

this one doesnt need any custom container anymore.

Former Member
0 Kudos

yes

thanks to all a lot for helping me