Cbrrr:
Mirando el código que me escribiste,yo lo traté de hacer de ésta forma
Inserté en el Modulo de datos una Query, que se llama Consulta1, en su propiedad SQL escribi lo siguiente:
Código:
select sum(Precfinal) As Suma
From Det_producto Inner Join Consumos On Det_producto.Consumo=Consumos.IdConsumo;
Y en el evento AfterPost de la tabla TblDetProducto lo siguiente:
Código:
procedure TModuloDatos.TblDetproductoAfterPost(DataSet: TDataSet);
Var
x:Variant;
begin
ModuloDatos.Consulta1.Close;
ModuloDatos.Consulta1.Open;
If ModuloDatos.Consulta1.IsEmpty Then
ModuloDatos.TblConsumos.FieldByName('Totalfactu').AsFloat:=0
Else
X:=Modulodatos.Consulta1.FieldByName('Suma').AsFloat;
ModuloDatos.TblConsumos.FieldByName('Totalfactu').AsFloat:=x;
end;
Pero no me funciona, el tema está en como asigno 'SUMA' o el valor que tengo en ella al campo 'Totalfactu', de la tabla TblConsumos, ya que me parece que es eso lo que hago mal.
Igual antes probé con tu código pero no me ejecuta el programa ya que me dice que 'No puedo asignar la base de datos porque es de sólo lectura (o algo así) a Q.database:=DB Control (que es el nombre de mi base)