// //

Cómo crear un gráfico de barras en Smartforms sin imágenes

"Eso es imposible en Smartforms"

... es una frase que todo desarrollador SAP ha escuchado o dicho alguna vez. Especialmente cuando alguien sugiere crear gráficos directamente en formularios sin usar imágenes externas o herramientas complejas. Pero un valiente miembro de la comunidad decidió romper esa regla no escrita y demostrar que lo "imposible" a veces solo necesita creatividad y lógica ABAP. Su hazaña: generar un gráfico de barras completamente funcional dentro de un estado de cuenta usando únicamente ventanas y estructuras de datos. Sin librerías externas, sin imágenes, sin complicaciones. Solo código inteligente que convierte Smartforms en un lienzo digital. Esta historia desafía todo lo que creíamos saber sobre las limitaciones de SAP y nos recuerda que la innovación surge cuando alguien se atreve a preguntar "¿y si sí se puede?"







Gráfico para Estado de Cuenta SAP Smartforms

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 

image

Importar Smartform

Baje el smartform y está en el repositorio ABAP de Consultoria-SAP en GitHub:



Saludos! y espero sus comentarios




Tu opinión nos importa

Lo que sea que estés pensando es un aporte importante para otros lectores.
¿Crees que faltó algo? Puedes comentarlo a continuación !!!

0 comments:

Publicar un comentario

Nota Importante: los comentarios son para agradecer, comentar o sugerir cambios (o hacer preguntas) sobre el artículo de arriba.


SAP y el logotipo de SAP son marcas comerciales registradas de SAP AG en Alemania y en varios otros países. No estamos afiliados ni relacionados con ninguna división o subsidiaria de SAP AG.