Evento-señal "despues de actualizar"

Esto no funciona, se bloquea y hay que salir de VDevelop, reiniciar servidor, etc.... para poder volver a probarlo.

Los campos estan así:

-SLIN_MARGEN: CONTENIDO INICIAL: choose(#SLIN_GANANCIA_MANUAL,#SLIN_GANANCIA_MANUAL*100/#SLIN_COSTO,choose(#SLIN_PVP_MANUAL,(#SLIN_PVP_MANUAL-#SLIN_COSTO)*100/#SLIN_COSTO,#SLIN_GANANCIA*100/#SLIN_COSTO))

-SLIN_PVP: FORMULA: choose(#SLIN_PVP_MANUAL, #SLIN_PVP_MANUAL,#SLIN_COSTO+(#SLIN_COSTO*#SLIN_MARGEN/100))

-SLIN_GANANCIA: FORMULA: choose(#SLIN_GANANCIA_MANUAL, #SLIN_GANANCIA_MANUAL, #SLIN_PVP-#SLIN_COSTO)

 

He ido probando con el Contenido Inicial de SLIN_MARGEN de mas simple a mas complejo, es decir, le he ido dando diferentes formulas en el Contenido Inicial para ver donde se rompía y estas son las conclusiones:

-Contenido Inicial: choose(#SLIN_GANANCIA_MANUAL,1,2) => Funciona, al abrir una ficha nueva coge el valor 2.

-Contenido Inicial: choose(#SLIN_GANANCIA_MANUAL,1,choose(#SLIN_PVP_MANUAL,2,3)) => Funciona, al abrir una ficha nueva coge el valor 3.

-Contenido Inicial: choose(#SLIN_GANANCIA_MANUAL,1,choose(#SLIN_PVP_MANUAL,2,#SLIN_GANANCIA*100/#SLIN_COSTO)) => Se BLOQUEA

-Contenido Inicial: choose(#SLIN_GANANCIA_MANUAL,1,choose(#SLIN_PVP_MANUAL,2,#SLIN_MARGEN)) => Se BLOQUEA

 

Lo estoy intentando pero no veo la luz por ninguna parte, con los eventos por lo menos no se bloqueaba aunque daba valore
<script src="http://velneo.es/foros/my-plugins/be-tinymcecomments/tiny_mce/themes/advanced/langs/es.js" type="text/javascript"></script>
s incoherentes.

 

Estan mal las formulas?

 

Hola.

Una prueba que yo haría es la siguiente: puede ser que la división por cero te dé algún problema. Por tanto, no te cuesta nada evitarla, a ver si es por eso.

Para ello, tienes que escribir:

DIVIDENDO / (DIVISOR | 1)

en vez de

DIVIDENDO / DIVISOR

Otra cosa que puede pasar es que tengas una actualización múltiple. Piensa que el contenido inicial no es "sólo inicial", sino que se actualiza siempre que cambie el valor de los campos que lo integran (si son de la propia tabla).

Y te podría pasar que, p.ej., cambie el Campo1, eso afecte al contenido inicial del Campo2 y, por tanto, recalcula el Campo2, que a su vez forma parte del contenido inicial del Campo1... y ocurra un bucle. No he visto ningún bucle en las fórmulas que indicas, pero quizá haya algún campo más con contenido inicial en la tabla.

Saludos... y ánimo!

Fran Varona

 

Buenas

Una pequeña puntualización a lo que te dice Fran. Si haces DIVIDENDO / (DIVISOR | 1) te va a dividir siempore entre uno. Puedes dejarlo como está que el único problema que ya está reportado a soporte de VELNEO es que te llena la pantalla de mensajes del vAdmin de mensajes de división entre cero. Mientras se soluciona podrías hacer la fórmula tal que así :

DIVIDENDO / choose(DIVISOR> 0 , DIVISOR, 1)

Me parece que lo que te pasa es que se está metiendo en bucle de campos que se recalculan entre sí.

Un saludo.

 

 

Jorge Velasco

SISTEMA BINARIO

Hola.

Tienes toda la razón, Jorge. Ese método, escrito de forma completa, es:

choose(DIVISOR=0, 0, DIVIDENDO/(DIVISOR|1))

Pero creo que tu forma es mucho más cómoda de escribir. 

Gracias,

Fran Varona

 

Buenas Fran.

El problema es que como pongas DIVIDENDO / (DIVISOR | 1) siempre te divide entre 1, aunque DIVISOR tenga valor.

Un saludo.

 

 

Jorge Velasco

SISTEMA BINARIO

Buenas, sigo con el problema del cuelgue, resumo:

<span style="text-decoration: underline;">Solo tengo un campo con Contenido Inicial y editable por el usuario:

-Campo: SLIN_MARGEN

-Contenido Inicial: choose(#SLIN_GANANCIA_MANUAL,#SLIN_GANANCIA_MANUAL*100/choose(#SLIN_COSTO=0,#SLIN_COSTO,1),choose(#SLIN_PVP_MANUAL,(#SLIN_PVP_MANUAL-#SLIN

<span style="text-decoration: underline;">2 campos formula numérica:

-SLIN_PVP: Formula: choose(#SLIN_PVP_MANUAL,  #SLIN_PVP_MANUAL,#SLIN_COSTO+(#SLIN_COSTO*#SLIN_MARGEN/100))

-SLIN_GANANCIA: Formula: choose(#SLIN_GANANCIA_MANUAL, #SLIN_GANANCIA_MANUAL, #SLIN_PVP-#SLIN_COSTO)

<span style="text-decoration: underline;">2 campos numéricos editables por el usuario:

-SLIN_COSTO:

-SLIN_PVP_MANUAL:

-SLIN_GANANCIA_MANUAL:

 

Todos los campos tienen la propiedad SIGNO = Verdadero y DECIMALES=2. Y no hay ningún otro campo numérico en el formulario (Adjunto imagen para que este claro el contexto)

 

Se trata de que el cliente rellene el SLIN_COSTO y SLIN_MARGEN y se calculen SLIN_PVP y SLIN_GANANCIA automáticamente. Pero tambien el cliente tiene que tener la opción de modificar la ganancia (campo SLIN_GANANCIA_MANUAL) y que todo se recalcule, o de modificar el PVP (campo SLIN_PVP_MANUAL) y que todo se recalcule.

 

Si sabeis una forma de hacerlo mas facil, decidmelo porfavor, en un principio intente hacerlo con eventos (no lo conseguí), pero en este hilo se me aconsejo hacerlo de esta manera, desde la la propia tabla y con campos calculados y entiendo que es mucho mejor, sobre todo a la larga, pero no hay forma...

 

Muchas gracias por el interes!

 

 

 

 

 

[attachment=6017,628]

Se ha podido solucionar este problema?

 

Me encuentro en una situacion igual.

 

Necessito que se me calculen campos dependiendo de los otros.

 

Tengo 4 campos editables i rellenes el que rellenes necesisto calcular los otros, si los vinculo todos por contenido inicial me falla el vclient.

 

Alguna solucion?¿

 

Muchas Gracias

Hola.

No sé si es el mismo problema, pero lo que sí está claro es que si relacionas cuatro campos entre sí mediante contenido inicial, se crea un bucle sin fin y cuelga el vClient. Al menos, uno de ellos tiene que ser "libre" (es decir, no tener contenido inicial) y es el que hace que el resto se recalcule.

Si en tu caso, por fuerza, los cuatro campos tienen que estar relacionados, lo que puedes hacer es que al perder el foco cada uno de los tres campos "no libres", haces un recálculo manual del campo "libre", y ya se te actualizarán todos.

No sé si me expliqué correctamente: si necesitas más aclaraciones, lo comentas.

Saludos,

Fran Varona