![]() |
Calcular un valor antes de guardar en una tabla
Hola!
Tengo este procedimiento aun en fase de prueba, cuando hago click en un boton se envia a traves del puerto serie (Com) la cadena:
Cuando se recibe esta cadena se ejecuta este procedimiento:
El Campo Suma esta declarado como Float, con valor por defecto 0 y no debe ser Null. El problema es que no efectua la suma y me envia el mensaje de error "el campo Suma no puede ser NULL" Supongo es una tontera pero ¡¡ya se me trabaron las ultimas neuronas que sobreviven sin alcohol!! Mi logica es: Total vale inicialmente 0, cuando se recibe un dato de valor entonces se suma: Suma = Valor + 0; 4356 = 4356 + 0; La siguiente vez : Suma = Valor + Suma; 8712 = 4356 + 4356; y asi sucesivamente es decir estoy totalizando todos los valores. Agradesco su ayuda!! |
Cita:
prueba separarlo para ver con puntos de quiebra dónde te da el error... algo como
Suerte. |
A ver, ¿Osea que tu lo que quieres es ir incrementando el valor del campo suma?
|
alli hay un error de logica, el campo suma siempre va a ser cero si lo que quieres es la suma tendrias que declarar una variable global y ahi ir acumulando, cada vez que se reciba una cadena se graba el valor de la variable no del campo y te explico porq: luego de un append todos los registros quedan en blanco y estas sumando igual un valor nulo siempre
|
Cita:
Pero si lo que quieres es ir añadiendo registros con cada valor acumulado y de esa manera llevar el "historial", lo mejor es usar la sugerencia que han especificado nuestros compañeros, usando dicha variable acumuladora ;). |
Como les dije es una tontera.....(cuanta falta me hace el conde Smirnoff!!!)
Jeje y asi funciona Gracias!! P:D: Jeje me adelante, asi como dije ya no muestra el error!! sin embargo en la tabla todos los valores de suma son iguales a valor. Ademas vi algo raro pero aun no lo defino. Luego les cuento!! |
Cita:
Recuerda el hecho que no salten excepciones no quiere decir que vaya a funcionar. |
Bueno, ahora si!
Ya probe y revise tablas y parece que ya no hay problema. Esto quedo asi:
Se siguen aceptando sugerencias!! Gracias! |
la variable debe ser global, tu la estas declarando local por eso se te reinicia cada vez que entras al procedimiento, sacala de alli y colocala como global.
|
Cita:
Bueno, si, declare la variable local pues es el unico sitio donde la uso y ademas cada vez que entro al procedimiento le asigno el ultimo valor de suma que esta guardado en la tabla esto me da como resultado algo asi ya en la tabla: Cita:
|
pues si tienes razon, pero lo unico que te aconsejaria es asegurarte que al entrar al procedimiento se vaya al ultio registro, (.Last)
|
Gracias!!
Eso si no lo habia tomado en cuenta!! |
La franja horaria es GMT +2. Ahora son las 13:13:26. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi