MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   calcular pordentaje en Salida ALV (foro/showthread.php?t=76613)

amam2605 04/01/17 12:56:03

calcular pordentaje en Salida ALV
 
1 Adjunto(s)
Hola a todos !!!

Estoy necesitando colocarle una linea extra a la salida del ALV en el programa H99CWTR0 donde calcule el 2% del monto total de la sumatoria de la columna importe, si alguien ha hecho algo asi que me pueda por favor dar una idea se lo agradeceria mucho.

Saludos

AMAM

ecarrasco0119 13/01/17 21:57:04

me parece que lo que tienes que hacer es modificar los subtotales de tu alv, para ello necesitas usar la función:

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'

lo que hace es traer las propiedades de tu ALV. Una vez que tienes el objeto creado, extraes sus subtotales con el metodo :

CALL METHOD lo_grid->get_subtotals


te dejo un ejemplo que a mi me sirvio mucho:

DATA: lo_grid TYPE REF TO cl_gui_alv_grid,

* get the subtotal
it_00 TYPE REF TO data, " tabla con el total
it_01 TYPE REF TO data. " tabla con subtotal (declara tantas tablas como subtotales tengas)

FIELD-SYMBOLS: <ft_tab> TYPE ANY TABLE,
<fs_tab> TYPE any,
*declaro las columnas que quiero tratar en este caso la columna 3 va a guardar la suma de la columna 1 + columna 2.
<fs_campo1> TYPE any,
<fs_campo2> TYPE any,
<fs_campo3> TYPE any.

* get the global reference
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lo_grid.

*obtengo mis subtotales
CALL METHOD lo_grid->get_subtotals
IMPORTING
ep_collect00 = it_00
ep_collect01 = it_01.

trabajo con el subtotal
ASSIGN it_01->* TO <ft_tab>.
LOOP AT <ft_tab> ASSIGNING <fs_tab>.

ASSIGN COMPONENT 'CAMPO1' OF STRUCTURE <fs_tab> TO <fs_campo1>.

ASSIGN COMPONENT 'CAMPO2' OF STRUCTURE <fs_tab> TO <fs_campo2>.

ASSIGN COMPONENT 'CAMPO3' OF STRUCTURE <fs_tab> TO <fs_campo3>.

<fs_campo3> = <fs_campo1> + <fs_campo2>.


ENDLOOP.


debes crear un perform top_of_page y meter ahi toda esta logica


CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_callback_pf_status_set = 'F_STATUS'
i_callback_user_command = 'F_USER_COMMAND'
i_callback_top_of_page = 'TOP_OF_PAGE' " <------------------aqui se hace el llamado.


a grandes rasgos hice eso, espero te sea de ayuda


Husos Horarios son GMT. La hora en este momento es 09:29:03.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web