Начинающий |
 |
Зарегистрирован: Вт, фев 20 2007, 09:41 Сообщения: 10
|
METHODS:
on_after_refresh FOR EVENT AFTER_REFRESH OF cl_gui_alv_grid,
calculate_prices CHANGING total TYPE t_tt_vbrp.
METHOD on_after_refresh.
DATA:
total TYPE REF TO DATA,
subtotal1 TYPE REF TO DATA,
subtotal2 TYPE REF TO DATA.
FIELD-SYMBOLS:
<total> TYPE t_tt_vbrp.
IF rf <> SPACE.
rf = SPACE.
RETURN.
ENDIF.
CALL METHOD grid->get_subtotals
IMPORTING
ep_collect00 = total
ep_collect01 = subtotal1
ep_collect02 = subtotal2.
ASSIGN total->* TO <total>.
CALL METHOD calculate_prices CHANGING total = <total>.
ASSIGN subtotal1->* TO <total>.
CALL METHOD calculate_prices CHANGING total = <total>.
ASSIGN subtotal2->* TO <total>.
CALL METHOD calculate_prices CHANGING total = <total>.
rf = 'X'.
CALL METHOD grid->refresh_table_display
EXPORTING I_SOFT_REFRESH = 'X'.
ENDMETHOD.
METHOD calculate_prices.
DATA:
wa_vbrp TYPE t_vbrp.
LOOP AT total INTO wa_vbrp.
IF wa_vbrp-fkimg = 0.
wa_vbrp-price = 0.
wa_vbrp-price_nds = 0.
ELSE.
wa_vbrp-price = wa_vbrp-kzwi3 / wa_vbrp-fkimg.
wa_vbrp-price_nds = wa_vbrp-kzwi4 / wa_vbrp-fkimg.
ENDIF.
MODIFY total INDEX sy-tabix FROM wa_vbrp.
ENDLOOP.
ENDMETHOD.
|
|
|