Operaciones matematicas con elementos de lista


([N1] info) #1

Buenas

Simplifico mi caso

Supongamos que tengo tres tablas: Una de compra y sus dos maestras de Articulo y Cliente. Para un cliente, selecciono una serie de articulos a traves de la tabla de compra. Así un cliente en concreto compra una serie de articulos. Hasta aquí creo que está bien!

El problema es que intento hacer unos calculos con los precios de los articulos de la compra y no lo consigo (simplifico el caso, pero un realidad no es una suma aritmetica simple). He intentado hacer un proceso con origen en Cliente mas o menos así:

Modificar campo (CALCULO,0)
Cargar plurales (COMPRAS_CL_CLIENTE)
Recorrer lista lectura/escritura
Set (temp,precio+#CLIENTE.CALCULO) - sumamos el valor del precio de art al acumulado en el campo CALCULO del cliente
Modificar ficha maestro (CLIENTE)
Modificar campo (CALCULO,temp) - el resultado de la suma lo acarreamos al campo CALCULO

No me da el resultado esperado y no se porqué. Veis algo mal?

Gracias y saludos


([N1] wikan) #2

Buenas,
lo correcto es este caso sería usar actualizaciones.
Yo lo primero que comprobaría sería el tipo de variables y de campos que estés usando. Mira que todos sean numéricos


([N1] info) #3

Buenas

Comprobado, Todos son numericos con la misma longitud y decimales.

La actualizacion en que tabla debe ir?


([N1] wikan) #4

Desde compras al cliente, si lo que quieres es acumular el importe comprado por el cliente


([N4] mperez) #5

Hola Info.lec-lab

Me da la sensación de que estas intentando programar en Velneo a lo “Visual Basic”, lo cual es posible, pero tan costoso como lo era con otras herramientas.

Lo mas potente, lo fundamental y por donde hay que empezar es por dominar la BASE DE DATOS de VELNEO, realmente con esta y sin hacer nada de interface, deberás ser capaz de hacer algo operativo y sin necesidad de procesos, etc

Toda la lógica la debes resolver en Base de Datos, de esa forma todo es mucho mas sencillo que andar mirando donde acumulas un valor

En tu caso , para hacer este tipo de cosas en Velneo se usan las actualizaciones.

En tus tabla de Compras tendrás un puntero a la tabla de articulos y otra a la tabla de clientes

En clientes, defines un campo que sea Total compras y un puntero a Clientes

Creas una actualizacion en Compras

Utilizara el puntero Clientes
Actualizara el Campo Ventas de la tabla Clientes
Con el campo Importe de la tabla Compras

Esos es todo

En cualquier formulario , proceso, Web o lo que sea que acabe modificando , o dando de alta una compra, el sistema se encargará de actualizar el campo Ventas de Clientes, de forma independiente a que sean altas, bajas o modificaciones, el se encarga

Esto es el ejemplo mas simple pues las actualizaciones se pueden complicar hasta la extenuación con distintos enlaces, punteros y condiciones de activación.

Si quieres llevar lo mismo en Artículos o por ejemplo unidades vendidas será similar.

Si no tienes el Importe, sino que tienes precio y unidades, crea un campo formula que sea el producto de ambas en la tabla compras

Sinceramente no pretendo venderos nada pero te aconsejaría que empezaras Velneo con una formación pues te resultará mucho mas rentable y menos costoso.

En Nivel 2 tienes unos maravillosos video tutoriales en el que en apenas unas horas entenderas estos conceptos básicos de Velneo

Esto lo puedes complementar con un curso de formación on line del cual hemos hecho muchas promociones de Nivel 2, incluyendo el curso de forma gratuita.

Aunque evidentemente también dispones de herramientas gratuitas, ejemplos y este maravillosos foro

Espero haberte ayudado


([N1] info) #6

si, ya veo.
solucionado con las actualizaciones.

No obstante me ha costado tambien así, ja que los resultados no eran los esperados. El problema era que uso calculos exponenciales y la longitud del campo donde almaceno era demasiado corta y me sesgaba el resultado.

gracias y saludos


([N1] juan infante) #7

Consulta:

Yo tengo una tabla PROYECTO y otra TAREAS, en donde TAREAS es el plural de PROYECTOS. En la tabla TAREAS tengo un campo PORC_AVANCE, y en la tabla PROYECTO tengo los campos PORC_AVANCE y NUM_TAREAS, aplique el concepto de actualizaciones, y me va bien el tema, en donde en la tabla PROYECTO me va acumulando el PORC_AVANCE (suma) y me va acumulando el NUM_TAREAS(contador), adicional cree un campo en PROYECTO, el cual me calculaba el avance del proyecto en funcion del PORC_AVANCE y el NUM_TAREAS (campo calculado AVANCE), ahora hasta ahi todo bien, pero solo para los registros nuevos.

Mi interrogante es, como haría para realizar el proceso de actualizacion de dichos campos mediante un proceso ???

PROYECTOS_AVANCE_ACTUALIZAR.pdf (15.1 KB)

PROYECTOS_AVANCE_INICIALIZAR.pdf (14.5 KB)