Hola,
Me toco como requerimiento colocar una gráfica de barras en un estado de cuenta, vi varios métodos pero todos tenia que incrustarlo como una imagen y necesitaba recursos, ya que es periódica la creación.
Mi solución es la siguiente: ( si tienen alguna idea, comenten )
Paso 1.- Se define la ventana main del color que será tu gráfico
Paso 2.- En este caso el gráfico será de 6 barras por lo que tuve que crear 12 ventanas y 6 tablas para cada una de las barras del gráfico. (entre barra y barrra hay una ventana que simula el espacio).
Paso 3.- depende mucho el tipo de letra y tamaño que uses para determinar cuantos appends o lineas necesitas en tu tabla para cubrir el área de blanco. (las ventanas que van entre barrra y barra deben tener el total cubierto). en mi caso fueron 14 y lo declare en inicialización.
el espacios entre las barrras es fijo
wa_esp-data = 1.
append wa_esp to it_esp.
append wa_esp to it_esp.
append wa_esp to it_esp.
append wa_esp to it_esp.
append wa_esp to it_esp.
append wa_esp to it_esp.
append wa_esp to it_esp.
append wa_esp to it_esp.
append wa_esp to it_esp.
append wa_esp to it_esp.
Paso 4.- para Asignar el valor a las columnas saque un promedio entre el valor más grande y debes asignar un promedio de “appends” para cada columna.
ASIGNAR VALOR A LAS 6 COLUMNAS
"COLUMNA 1
read table it_grafico into wa_grafico
with key etiqueta = 'V1'.
if sy-subrc eq 0.
move wa_grafico-importe to v1.
if v1 eq vm.
"NO LE ASIGNA NADA
else.
if v1 < '1'.
wa_barra1-data = 1.
do 15 times.
append wa_barra1 to it_barra1."1
enddo.
else.
wa_grafico-lineas = abs( ( v1 * 14 ) / vm ).
wa_grafico-lineas = 14 - wa_grafico-lineas.
do wa_grafico-lineas times.
wa_barra1-data = 1.
append wa_barra1 to it_barra1."1
enddo.
endif.
endif.
endif.
El gráfico queda de la siguiente forma
Importar Smartform
Baje el smartform y está en el repositorio ABAP de Consultoria-SAP en GitHub:
Saludos! y espero sus comentarios