Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Sql sumar campo sum() (https://www.clubdelphi.com/foros/showthread.php?t=53260)

teclilla 16-02-2008 18:48:45

Creo que he resuelto el tema, me he creado una variable global donde voy guardando los importes de cada linea y mediante codigo los sumo y lo asigno al campo Suma Total del presupuesto de la tabla maestra y funciona de maravilla. Pero ahora tengo otro pequeño problemilla, resulta que si en la tabla detalle introduzco varias lineas de productos, al pasar a la segunda linea me realiza un post de la primera y claro, si el usuario despues de tener rellenado el presupuesto quiere cancelarlo, el presupuesto se cancela de la tabla maestra y la ultima fila de la tabla detalle tambien (es decir, no se graban) pero las anteriores de la tabla detalle si, con lo cual tendria registros en la tabla detalle que no hacer referencia a la tabla maestra, ¿se os ocurre algo?
Muchas gracias por vuestra ayuda. :)

Lepe 16-02-2008 18:55:58

Antes de borrar un registro en la maestra, evento beforedelete, haces que el usuario confirme el borrado y lanzas una sql:
Código SQL [-]
delete from prespod where codpres= :res

Saludos

Caral 16-02-2008 19:07:14

Hola
Perdón que me meta pero no os parece que estáis matando moscas a cañonazos?.:confused::D
Lo que se pretende es hacer una suma de un campo de una tabla y mostrar el resultado.
La tabla Presupuesto va adquiriendo los datos segun se van introduciendo y el campo importe es el que se suma.
Cual es el asunto de fondo, por que hacer una variable que despues se tendra que borrar.
La verdad no entiendo cual es el problema que a mi corto parecer y conocimiento deberia de ser simple.
Me lo podeis explicar, sinceramente no entiendo.
En tal caso en vez de un cañon no es mejor un misil.:D:D
Saludos

teclilla 16-02-2008 19:34:14

El problema es que al estar las tablas en modo edicion y no haber realizado un post, no realiza la sql
Código SQL [-]
Select sum(Importe) as ST from presprod where Codpres= :res
group by Codpres
sino, no entiendo porque el resultado siempre es cero

Caral 16-02-2008 19:46:36

Hola
Cita:

Escrito por ti:

Hola! que tal? Necesito ayuda con el sql, estoy con una aplicacion para elaborar presupuestos a clientes mediante un formulario, tengo la tabla maestra Tpresupuestos y la tabla detalle TPresProdDetalle en la cual voy añadiendo productos para elavorar el presupuesto, esta última tabla contiene un campo 'Importe' que contiene el importe de cada linea de detalle, el total del presupuesto se encuentra en el campo 'SumaTotal' de Tpresupuestos.
Para realizar la suma utilizo una sql :
La tabla Presupuestos tiene los datos, osea que ya estan ahi.
La tabla PresProdDetalle va capturando los datos, osea que tambien estan ahi, si no fuera asi entonces no iría añadiendo nada, o no?.

Para añadir datos se tiene que insertar (NO editar) y hacer el post.

Sigo sin entender.
Saludos

teclilla 16-02-2008 20:15:33

Si es cierto, pero si entonces ¿cual es la explicacion de que la suma de importe siempre se cero? los codigos tanto de presupuesto como del detalle estan bien y he comprobado que no son nulos. Necesito que realice la suma para que el presupuesto tenga un total, y no se la razon de porqué siempre es 0.

Lepe 16-02-2008 22:53:12

teclilla, ¿no tendrás activada en el inspector de objetos la propiedad Cache updates en alguna tabla ¿no?

Por otra parte, se me ha escapado el tema de FlushBuffers, lo siento.

En todas tus tablas, en el evento AFTERPOST añade:
Código Delphi [-]
tablaQuesea.FlushBuffers;
Para que todo cambio hecho, se grabe inmediatamente a las tablas. Ahora mismo, puede pasar algunos segundos /minutoas hasta que se graben físicamente los registros, y ahí puede estar el problema, la suma se hace antes de que estén grabados.

... Se me agotan las ideas :confused:

Bien es verdad que se podía usar el evento OnChange del campo Bimponible y allí realizar todas las operaciones, incluso modificar el total de la tabla maestra, pero quizás se forme un lío de eventos (la tabla detalle se modifica a sí misma que provoca otro cambio Onchange, y además modifica la tabla Maestra, ummm, mejor por SQL :D.

Saludos

teclilla 17-02-2008 18:50:15

No, no tengo activada la opción Cache Updates en ninguna tabla, y sigo sin entender porque no realiza la suma, así que de momento lo dejare con la variable global, ya que necesito avanzar en el programa. Si despues tengo algun problema seguiré investigando y si averiguo lo que es, os avisaré en seguida. Muchas gracias por vuestra ayuda.
Muy agradecida, teclilla.


La franja horaria es GMT +2. Ahora son las 17:23:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi