‎2008 Feb 08 5:35 AM
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.
‎2008 Feb 08 6:22 AM