Agrupar artículos de tabla MOV_COMFAC

Hola,
Soy novato en este lenguaje,
Alguien sabe como agrupar los artículos que son iguales (Misma ID) y que sumen sus cantidades compradas de la tabla MOV (movimientos)
Ej.
Factura 1- Cemento 10 bolsas
Factura 2- Cemento 20 Bolsas
Factura 3 - Cemento 5 Bolsas
Resultado: Cemento 35 Bolsas

He tratado con este proceso
Cargar Plurales (MOV_COMFAC)
Multipartir lista (ART)
Ordenar lista (#fecha)
Invertir lista
Añadir a la salida

Desde el alternador
Interfaz: Obtener multiselección()
Crear manejador de objeto (proceso, Proceso COM_FAC_TO_COM_FAC_LIN)
Añadir lista al objeto (proceso)
Disparar objeto (proceso, 3° plano: Servidor(síncrono),)
Recorrer lista lectura/escritura
Crear manejador de objeto (rejilla, Rejilla COM_FAC_LIN_CON_FAC)
Añadir lista al objeto (rejilla)
Disparar objeto (rejilla, No aplicable)
Interfaz, Ejecutar manejador de evento (RFV ) *Refrescar
Gracias
Fernando

Hola fernando,
Si quieres tener en una lista todos los movimientos que sean del mismo articulo entonces debes;

Cargar Lista (MOV_G)
Filtrar Lista (#ART = “id del articulo”)

El resultado sera una lista con todos los movimientos que contengan el articulo que necesitas, de ahi ya si quieres sumar cantidades puedes hacer un recorrer lista que vaya leyendo el valor cantidad y sumandolo.
Si necesitas más ayuda, me puedes contactar.

Un Saludo
Matias de Rimatcom

Hola Matias,
Creo que lo que estoy buscando es lo que en SQL se llama group by.
Filtrar me resulta mas a quitar de la lista de origen los elementos que no cumplan una determinada condición.
Saludos Cordiales
Fernando

El group by en velneo es el Multipartir

Saludos
Matias de Rimatcom

Hola Fernando.

El lenguaje SQL muy poco tiene que ver con Velneo y es uno de los conceptos que tienes que ir aclarando, es decir, qué lenguaje disponemos en Velneo para interrogar a la Base de datos. La respuesta es básicamente que en Velneo no existe un lenguaje de consulta de datos, solo existe un comando Cargar lista que devuelve una Lista de registros según un Índice seleccionado.

¿ Y qué hago con un simple Cargar lista ? Pues muchas cosas y de una manera muy sencilla.

En los procesos tendré que usar los Cargar lista, apoyándome en objetos Búsqueda y en la Cestas locales o globales para, cruzar o añadir conjuntos de registros de una misma tabla.

¿ Y qué pasa cuando quiero agregar datos como hace SQL con SUM() y Group By ?

Pues eso con Velneo hay que traerlo hecho desde casa, es decir, los agregados deben estar ya calculados en la base de datos. Disponemos para ello del subobjeto Actualizaciones de la tabla.

En resumen, la estructura de la Base de datos en Velneo debe reflejar casi el 100% de la lógica de negocio que vayamos a usar en la Aplicación, de lo contrario te encontrará con situaciones como la que planteas.

¿ Cómo obtengo las Compras acumuladas desde la tabla de Movimientos de los Maestros Artículos ? Pues tendrás que definir una Actualización en la tabla Movimientos que vaya acumulando las Compras en un campo de la tabla del maestro Artículos.

Esta es la forma de hacer las cosas en Velneo, tener la Base de datos preparada para darte la información tal como la vas a demandar. Objetos como Índices, Actualizaciones, Punteros reales, Punteros virtuales, Búsquedas, … te facilitarán el trabajo.

Saludos
Paco Satué

1 me gusta

Hola Paco,
Muchas gracias por la orientación, tomaré en cuenta las recomendaciones.

Saludos
Fernando

Hola, después de casi 1 año de hacerme esa pregunta, me respondo.
Velneo puede guardar una línea de movimiento y actualizar esos datos en otras tablas en tiempo real (Ejemplo MOV_COM_FAC actualiza a estadísticas del artículo donde puedo acumular las cantidades y costes). Esa actualización, es en gran parte, lo mejor que tiene Velneo.
Sin embargo con los registros ya creados podemos usar el siguiente proceso que hay que adecuarlo dependiendo de la situación.


Saludos
Fernando