PDA

Ver la Versión Completa : Conversion a Excel (FicheroLocal -> Hoja Calculo Coste)


mitosap
03/06/10, 21:15:14
Hola amigos del foro.

He desarrollado un reporte de rendimientos de productos para usarios de PP y casi lo tengo listo si no fuese por un detallito que se me ha presentado.
Al convertir a excel el reporte ALV, la columna de rendimientos se está quedanto en este proceso de conversión. Si copio la linea/fila de ese ALV y lo pego a excel si se refleja.

He buscado ayuda en estos foros y encontré que se pudiera tratar de:
-Tipos de Datos (Los cuales ya he revisado con detenimiento).
-Posible parshe de saplogin (se le recomendaba al compañero del foro actualizar el 15 y él se fue al 6 y nada, el problema persistía).

Todas las operaciones aritméticas las dejo del lado de la variante de visualización, excepto una que si hago desde el código alterando el contenido de esta operación aritmética (rendimiento).

El Alv está así:

P.Entrada CantDia_SE P.Salida CantDia_PT %Rendimiento
A 100 A1 35
A2 40
A3 20
Totales=> 100 95 95.00

B 200 B1 100
B2 60
Totales => 200 160 80.00

Total Final 300 255 85.00

Cuando convierto a excel el 95.00 y 80.00 no se reflejan.

A continuació parte del código en donde calculo los rendimientos.

*Cargamos el Grid de datos del ALV. Además de los totales de las 2 columnas
* de cantidades, tambien en la variante se suman la columna de rendimiento
* con el fin de poder cargar ese dato de la linea de subtotales y totales y
* luego poder manipularlo. En este caso hacer una división.

CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = lo_grid.

"Cargamos las Lineas de Totales del ALV.
CALL METHOD lo_grid->get_subtotals
IMPORTING
ep_collect00 = it_00 " Total general
ep_collect01 = it_01 " Subtotal por Producto SemiElaborado
*
*Para el caso de muestra, tomaremos la linea de totales SemiElaborado
* (P.Entrada). De la misma forma hago con el Rendimiento Total (Total
* general it_00)
*
ASSIGN it_01->* TO <ft_tab>.

" Recorremos el subtotal por Producto SemiElaborado,
" previamente cargado (it_01 to <ft_tab>. Habran tantos sub-totales
" como productos semielaborados hayan.

LOOP AT <ft_tab> ASSIGNING <fs_tab>.
ASSIGN COMPONENT 'CANTDIA_SE' OF STRUCTURE <fs_tab> TO <ff_field>.
cantDia_se = <ff_field>.
UNASSIGN <ff_field>.
ASSIGN COMPONENT 'CANTDIA_PT' OF STRUCTURE <fs_tab> TO <ff_field>.
cantDia_pt = <ff_field>.
UNASSIGN <ff_field>.

IF cantDia_se IS NOT INITIAL.
ASSIGN COMPONENT 'RENDI_DIA' OF STRUCTURE <fs_tab> TO <ff_field>.
<ff_field> = ( cantDia_pt / cantDia_se ) * 100 .
UNASSIGN <ff_field>.
Endif.

Endloop.

* Refresh the table display
CALL METHOD lo_grid->refresh_table_display
EXPORTING
i_soft_refresh = 'X'.


Bueno amigos, espero haber sido un poco claro con el problemilla.
Todo comentario es bien recibido.

Saludos desde Panamá y eque estén muy bien.

mitosap
07/06/10, 14:00:45
Hola amigos.

Disculpen todos la distorción del ALV que quize ilustrar a manera de ejemplo. Adjunto archivo comprimindo con dicho ejemplo.

La columna %Rendimiento es la que desaparece al convertir a excel.

De antemano gracias por la ayuda.

mitosap
07/06/10, 14:25:43
Hola amigos.

Disculpen todos la distorción del ALV que quize ilustrar a manera de ejemplo. Adjunto archivo comprimindo con dicho ejemplo.

La columna %Rendimiento es la que desaparece al convertir a excel.

De antemano gracias por la ayuda.

Disculpen, adjutno el archivo ejemplo.
1194