Ver Mensaje Individual
  #15  
Antiguo 14-07-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 26
guillotmarc Va por buen camino
Hola

Cita:
Posteado originalmente por andres1569
Bueno, ese problema que comentas lo tendremos siempre que lancemos la consulta SELECT SUM(), independientemente que usemos BeforePost o AfterPost o de que incluyamos en la consulta el registro "actual" (el que estábamos insertando).
¿ Porqué ?. En el evento AfterPost, el resultado de la consulta SELECT SUM siempre será correcto, puesto que la Base de Datos contiene todos los registros con sus ultimos valores.

Cita:
Posteado originalmente por andres1569
SELECT SUM(TOTAL)
FROM INGRESOS
WHERE id_ingreso < :id
¿ Que ocurre si en lugar de insertar / modificar el ultimo registro, estamos modificando uno de los intermedios en la grid ?. Entonces sería mejor hacer algo como :

SELECT SUM(TOTAL)
FROM INGRESOS
WHERE id_ingreso <> :id

Pero realmente no es necesario, si ejecuta la consulta en el AfterPost el valor devuelto tiene que ser correcto.

Otra cosa es que después diga que le salta un error de : Tabla Lineas_PEdido no esta en modo edición o inserción. Esto es un error de diseño de las tablas, por poner el total en el DataSet detalles en lugar de en el DataSet maestro.

Lo mejor que puede hacer es poner el total donde corresponde, en la cabecera del pedido, y no complicarse la vida volviendo a poner en modo edición el registro en Detalles, o hacer una consulta parametrizada en el BeforePost, sin tener en cuenta el registro actual para después sumarle el valor de este registro.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita