Ver Mensaje Individual
  #17  
Viejo 30/04/12, 21:38:38
Eduesqueda Eduesqueda is offline
Senior Member
 
Fecha de Ingreso: dic 2008
Localización: San Nicolás, México
Mensajes: 103
_____________________________________________________________

Si lo quité,, ya la acabo de poner y probar y los totales no cambian al valor de 100.
Asi quedó la rutina:

*&---------------------------------------------------------------------*
*& Form f_alv_top *
*&---------------------------------------------------------------------*
* Routine To generate the headed one of the ALV *
*----------------------------------------------------------------------*
FORM f_alv_top.

* Local Variables------------------------------------------------------*
DATA: lv_date(10) TYPE c,
lv_layout(50) TYPE c,
lv_textvar LIKE varit-vtext,
lv_variant(50) TYPE c.


DATA: BEGIN OF i_sumSel OCCURS 0,
waers LIKE i_alv-waers, "Moneda
wrbtr LIKE i_alv-wrbtr, "Importe
END OF i_sumSel.

* to verify that the Head does not have data.
REFRESH i_list_top.
* CHECK i_list_top[] IS INITIAL.

* Change Sy-Datum by Sy-Datlo.
WRITE sy-datlo TO lv_date DD/MM/YYYY.

* Create the name of the file to be generated.
CLEAR: i_gs_line.
i_gs_line-typ = c_s.
i_gs_line-key = text-t03. "File
i_gs_line-info = p_displ.
APPEND i_gs_line TO i_list_top.

* Create Date
CLEAR: i_gs_line.
i_gs_line-typ = c_s.
i_gs_line-key = text-t01. "Date
i_gs_line-info = lv_date.
APPEND i_gs_line TO i_list_top.

* Create User
CLEAR: i_gs_line.
i_gs_line-typ = c_s.
i_gs_line-key = text-t02. "User
i_gs_line-info = sy-uname.
APPEND i_gs_line TO i_list_top.
CLEAR: i_gs_line.

* Create Total Records
DESCRIBE TABLE i_alv
LINES v_tot_reg_t.

CLEAR: i_gs_line.
i_gs_line-typ = c_s.
i_gs_line-key = text-t04. "Total records
i_gs_line-info = v_tot_reg_t.
APPEND i_gs_line TO i_list_top.

* Create Selected Total Records
v_tot_reg_s = c_zeros.
REFRESH i_sumSel.
CLEAR i_sumSel.
LOOP AT i_alv.
IF i_alv-despu = c_x.
v_tot_reg_s = v_tot_reg_s + c_uno.
i_sumSel-waers = i_alv-waers.
i_sumSel-wrbtr = i_alv-wrbtr.
COLLECT i_sumSel.
ENDIF.
ENDLOOP.

CLEAR: i_gs_line.
i_gs_line-typ = c_s.
i_gs_line-key = text-t05. "Total Selected
i_gs_line-info = v_tot_reg_s.
APPEND i_gs_line TO i_list_top.

* Create Total Moneda
LOOP AT i_sumSel.
CLEAR: i_gs_line.
i_gs_line-typ = c_s.

CONCATENATE text-t06 "Total Moneda
i_sumSel-waers
INTO i_gs_line-key
SEPARATED BY SPACE.

CONCATENATE i_gs_line-key
c_2ptos
INTO i_gs_line-key.

i_gs_line-info = i_sumSel-wrbtr.
APPEND i_gs_line TO i_list_top.
ENDLOOP.

CALL FUNCTION 'RS_VARIANT_TEXT'
EXPORTING
curr_report = sy-cprog
langu = sy-langu
variant = sy-slset
IMPORTING
v_text = lv_textvar
EXCEPTIONS
no_text = 1.
IF sy-subrc EQ c_zeros.
CONCATENATE sy-slset
lv_textvar
INTO lv_variant
SEPARATED BY space.
ENDIF.

* i_gs_line-typ = c_s. " Line type [H]eader
* i_gs_line-key = text-t05. " Variant
* i_gs_line-info = lv_variant.
* APPEND i_gs_line TO i_list_top.

* Create the Third label of Title
CLEAR: i_gs_line.

CONCATENATE p_vari
v_text_lay
INTO lv_layout
SEPARATED BY space.

CLEAR: i_gs_line.
i_gs_line-typ = c_s. " Line type [H]eader
i_gs_line-key = text-t07. " Layout
i_gs_line-info = lv_layout.
APPEND i_gs_line TO i_list_top.

* Write the Headed
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_list_top.

* Código que me pasastes.

DATA: lo_grid TYPE REF TO cl_gui_alv_grid.

* Obtenemos referencia al ALV
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lo_grid.

* Tablas internas para grantotal y subtotal.
* En este caso solo tenemos un subtotal, si se subtotalizara por otros
* campos hay que agregar mas it_##.
DATA: it_00 TYPE REF TO data,
it_01 TYPE REF TO data.

CALL METHOD lo_grid->get_subtotals
IMPORTING
ep_collect00 = it_00 "Gran Total
ep_collect01 = it_01. "Novel LIFNR

* Cambiamos los datos.
FIELD-SYMBOLS: <ft_tab> TYPE ANY TABLE,
<fs_tab> TYPE ANY,
<ff_field> TYPE ANY.

* Gran Total
ASSIGN it_00->* TO <ft_tab>.
LOOP AT <ft_tab> ASSIGNING <fs_tab>.
ASSIGN COMPONENT 'WRBTR' OF STRUCTURE <fs_tab> TO <ff_field>.
<ff_field> = '1000'. "Modificamos
ENDLOOP.

* LIFNR Level
ASSIGN it_01->* TO <ft_tab>.
LOOP AT <ft_tab> ASSIGNING <fs_tab>.
ASSIGN COMPONENT 'WRBTR' OF STRUCTURE <fs_tab> TO <ff_field>.
<ff_field> = '100'. "Modificamos
ENDLOOP.

ENDFORM. " f_alv_top
__________________
Saludos
Alabado Seas Yhavé.
-Hay Un Mundo Mejor Cuando Aprendes a AMAR
Responder Con Cita