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

OOPS ALV

Former Member
0 Likes
271

Hi All,

I am creating an ALV Grid from CL_GUI_ALV_GRID class.

The ALV Grid is being generated nicely but its Total and Sub Total buttons are Disabled.

Even when i am trying to give Total and sub total in field catalog itself then also i am not getting them.

I hav'nt used Exlcuding Toolbar Function.

I am pasting my code for reference please view and tell where the problem is.



tables: VBRP,VBRK.

TYPES: BEGIN OF x_invoice,
         vbeln  LIKE vbrk-vbeln,
         bukrs  LIKE vbrk-bukrs,      "Company Code
         kunrg  LIKE vbrk-kunrg,      "Payer
         kunag  LIKE vbrk-kunag,      "Sold To
         posnr  LIKE vbrp-posnr,      "Item
         fkimg  LIKE vbrp-fkimg,      "Qty
         vrkme  LIKE vbrp-vrkme,      "Unit
         netwr  LIKE vbrp-netwr,      "Amount
       END OF x_invoice.

TYPES: BEGIN OF x_vbrk,
         vbeln  LIKE vbrk-vbeln,
         bukrs  LIKE vbrk-bukrs,      "Company Code
         kunrg  LIKE vbrk-kunrg,      "Payer
         kunag  LIKE vbrk-kunag,      "Sold To
       END OF x_vbrk.


TYPES: BEGIN OF x_vbrp,
         vbeln  LIKE vbrp-vbeln,
         posnr  LIKE vbrp-posnr,      "Item
         fkimg  LIKE vbrp-fkimg,      "Qty
         vrkme  LIKE vbrp-vrkme,      "Unit
         netwr  LIKE vbrp-netwr,      "Amount
       END OF x_vbrp.


DATA:  t_vbrk TYPE STANDARD TABLE OF x_vbrk,  "#Header
       wa_vbrk TYPE x_vbrk,
       t_vbrp TYPE STANDARD TABLE OF x_vbrp,  "#Item
       wa_vbrp TYPE x_VBRP,
       t_invoice TYPE STANDARD TABLE OF x_invoice,  "#Invoice
       wa_invoice TYPE x_invoice.                   "#Header + Item

DATA: c_container_name TYPE scrfname VALUE 'ALV_GRID'.

DATA: v_custom_container  TYPE REF TO CL_GUI_CUSTOM_CONTAINER,
      v_gui_alv_grid      TYPE REF TO CL_GUI_ALV_GRID,
      t_fcat              TYPE        LVC_T_FCAT,
      t_sort_fcat         TYPE        LVC_T_SORT,
      x_layout            TYPE        LVC_S_LAYO.


*----------------------------------------------------------------------*
*       CLASS cl_receiver_event DEFINITION
*----------------------------------------------------------------------*
CLASS cl_receiver_event DEFINITION.
  PUBLIC SECTION.
    METHODS   handle_dbl_clk
    FOR EVENT double_click
    OF        cl_gui_alv_grid
    IMPORTING es_row_no e_column.
ENDCLASS.                    "cl_receiver_event DEFINITION

*----------------------------------------------------------------------*
*       CLASS cl_receiver_event IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS cl_receiver_event IMPLEMENTATION.
  METHOD handle_dbl_clk.
    PERFORM sub_handle_dbl_clk USING es_row_no-row_id.
  ENDMETHOD.                    "handle_dbl_clk

ENDCLASS.                    "cl_receiver_event IMPLEMENTATION

SELECTION-SCREEN BEGIN OF BLOCK bl WITH FRAME TITLE title.
  SELECT-OPTIONS: so_vbeln FOR vbrk-vbeln.
SELECTION-SCREEN END OF BLOCK bl.

INITIALIZATION.
  MOVE 'Select' TO title.

START-OF-SELECTION.
  call SCREEN 9000.

FORM get_data.
  select vbeln bukrs kunrg kunag            "Filling VBRK Table with Header Fields
  from vbrk
  into TABLE t_vbrk
  where vbeln in so_vbeln.

  select vbeln posnr fkimg vrkme netwr      "Filling Invoice Table with Item Fields
  from  vbrp
  INTO CORRESPONDING FIELDS OF TABLE t_invoice
  FOR ALL ENTRIES IN t_vbrk
  WHERE vbeln = t_vbrk-vbeln.

data : p_vbeln TYPE vbrk-vbeln.

  loop at t_invoice into wa_invoice.
    READ TABLE t_vbrk WITH KEY vbeln = wa_invoice-vbeln
    INTO wa_vbrk.
    p_vbeln = wa_invoice-vbeln.

    move wa_vbrk-bukrs to wa_invoice-bukrs.
    move wa_vbrk-kunrg to wa_invoice-kunrg.
    move wa_vbrk-kunag to wa_invoice-kunag.
*    MODIFY t_invoice FROM wa_invoice INDEX sy-tabix. "TRANSPORTING wa_vbrk-bukrs.
    MODIFY t_invoice FROM wa_invoice. "WHERE vbeln = p_vbeln. "TRANSPORTING wa_vbrk-bukrs.
  ENDLOOP.

ENDFORM.


*&---------------------------------------------------------------------*
*&      Module  STATUS_9000  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module STATUS_9000 output.
  SET PF-STATUS 'ST9000'.
*  SET TITLEBAR 'xxx'.

  PERFORM get_data.
  PERFORM prepare_field_catlog.
  PERFORM prepare_layout.
  PERFORM display_alv.

endmodule.                 " STATUS_9000  OUTPUT
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9000  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
module USER_COMMAND_9000 input.
case sy-ucomm.
  when 'BACK'.
    LEAVE PROGRAM.
  WHEN 'CANCEL'.
    LEAVE PROGRAM.
  WHEN 'EXIT'.
    LEAVE PROGRAM.
ENDCASE.

endmodule.                 " USER_COMMAND_9000  INPUT

*&---------------------------------------------------------------------*
*&      Form  sub_handle_dbl_clk
*&---------------------------------------------------------------------*
*       Code Logic for handling Double Click Event.
*----------------------------------------------------------------------*
*      -->INDEX      Row INDEX
*----------------------------------------------------------------------*
FORM sub_handle_dbl_clk USING index.
  READ TABLE t_invoice INTO wa_invoice INDEX index.
  IF sy-subrc = 0.
    MESSAGE wa_invoice-vbeln TYPE 'I'.
  ENDIF.
ENDFORM.                    "sub_handle_dbl_clk

FORM display_alv.

CREATE OBJECT v_custom_container                    "Object for Custom Container
  EXPORTING
    container_name              = c_container_name
  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 v_gui_alv_grid                        "Object for ALV Grid
  EXPORTING
    i_parent          = v_custom_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 v_gui_alv_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                     =  x_layout
*    IS_PRINT                      =
*    IT_SPECIAL_GROUPS             =
*    IT_TOOLBAR_EXCLUDING          =
*    IT_HYPERLINK                  =
*    IT_ALV_GRAPHICS               =
*    IT_EXCEPT_QINFO               =
*    IR_SALV_ADAPTER               =
  CHANGING
    it_outtab                     = t_invoice[]
    IT_FIELDCATALOG               = t_fcat[]
    IT_SORT                       = t_sort_fcat
*    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.

ENDFORM.

FORM prepare_field_catlog.
  DATA: lwa_fcat      TYPE LVC_S_FCAT,
        lwa_sort_fcat TYPE LVC_S_SORT.

  DEFINE m_fcat.
    lwa_fcat-fieldname = &1.
    lwa_fcat-ref_table = &2.
    lwa_fcat-coltext   = &3.
    lwa_fcat-seltext   = &4.
    lwa_fcat-do_sum    = &5.
    APPEND lwa_fcat to t_fcat.
  END-OF-DEFINITION.

  DEFINE m_sortcat.
    lwa_sort_fcat-fieldname = &1.
    lwa_sort_fcat-up        = &2.
    lwa_sort_fcat-subtot    = &3.
    append lwa_sort_fcat to t_sort_fcat.
  END-OF-DEFINITION.

  m_fcat 'VBELN' 'VBRK' 'Document'      'Document'      ' '.
  m_fcat 'BUKRS' 'vbrk' 'Company Code'  'Company Code'  ' '.
  m_fcat 'KUNRG' 'vbrk' 'Payer'         'Payer'         ' '.
  m_fcat 'KUNAG' 'vbrk' 'Sold To'       'Sold To'       ' '.
  m_fcat 'POSNR' 'vbrk' 'Item No'       'Item No'       ' '.
  m_fcat 'FKIMG' 'vbrp' 'Qty'           'Qty'           ' '.
  m_fcat 'VRKME' 'vbrp' 'Unit'          'Unit'          ' '.
  m_fcat 'NETWR' 'vbrp' 'Amount'        'Amount'        'X'.

  m_sortcat 'VBELN' 'X' 'X'.
  m_sortcat 'BUKRS' 'X' ' '.
*  m_sortcat 'KUNRG' 'X' ' '.
*  m_sortcat 'KUNAG' 'X' ' '.


ENDFORM.


FORM prepare_layout.
  x_layout-CWIDTH_OPT = 'X'.
  x_layout-zebra = 'X'.
ENDFORM.

Thanks in advance,

Sachin Bhatnagar.

1 REPLY 1
Read only

Former Member
0 Likes
248

Hi all,

its urgent