Close

diciembre 11, 2013

Smart Forms: Trabajar con subtotales y grupos

En este tema aprenderemos a mostrar totales y subtotales, así como a agrupar datos, para esto vamos hacer paso a paso un formulario para imprimir . En este ejemplo crearemos un formulario que muestre una lista de documentos de material (movimientos de inventario) con su encabezado y detalle, para esto haremos uso de tablas para desplegar la información.

Primero debemos crear un smart form que reciba una tabla como parámetro con la misma estructura de la tabla de SAP MSEG

crear-tablas-subtotales

Con su respectivo work area y tres variables una para acumular el costo total por documento de material, otra para acumular el total de posiciones por documento de material y otra para acumular un total general de costos de todos los documentos.

workarea-variables-subtotal

Ahora ingresamos creamos una tabla dentro de la ventana principal con estas tres lineas (la linea de encabezado tiene borde superior e inferior).

lineas-tabla-subtotal

Para que el smart form calcule los totales y sub totales deberemos de crear Criterios de clasificación, al hacer esto se activaran nuevas opciones para agregar lineas en nuestra tabla (parte izquierda de la imagen) . También debemos agregar la tabla interna (IT_MSEG) y el work area (WA_MSEG). El criterio de clasificación que en este caso es por el campo MBLNR (Numero de documento de material) le indica a SAP que deseamos agrupar y totalizar registros de nuestra tabla (IT_MSEG) por cada valor diferente en el campo MBLNR.

clasificacion-subtotal

Ahora debemos configurar los cálculos, en este ejemplo podemos ver como utilizar las operaciones de Cantidad (count) y Total (sum). En la primera columna se define la operación a realizar sobre los datos de la tabla (Suma, promedio o conteo), en la siguiente columna se define sobre qué campo se desea realizar la operación, en el tercer campo se define en qué variable se va a depositar el resultado, en la cuarta se define el evento (después de cada loop), en las dos últimas columnas podemos indicar que el valor se re inicialice después de cada grupo de valores, en nuestro caso queremos que los subtotales sean sobre cada documento de material por lo que usamos estas opciones, en la variable total_costo deseamos el total de todos los documentos de material por lo que no reinicializamos nunca su valor.

operaciones-subtotal

Luego agregamos 4 filas a nuestra tabla del formulario (parte izquierda), la primera será de tipo DETALLE y tendrá tres textos que digan: Material, Moneda y Costo, la segunda linea sera de tipo ENCABEZADO y tendrá un texto que diga: Documento y la variable WA_MSEG-MBLNR, la tercera linea será de tipo DETALLE y tendrá tres textos cada uno con las variables WA_MSEG-MATNR, WA_MSEG-WAERS, WA_MSEG-DMBTR, la cuarta linea será de tipo SUBTOTAL y tendra un texto vacio y el segundo con las variables SUBTOTAL_COSTO y SUBTOTAL_POSICIONES. Al final de la tabla vamos a agregar un texto con la variable TOTAL_COSTO.

lineas-subtotal

Al realizar todos estos pasos tendremos un formulario con una salida como esta:

Subtotal en smartforms SAP ejemplo final