![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
Suma de un campo
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; 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;
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) |
|
#2
|
||||
|
||||
|
se supone que precfinal = Cantidad*Precunit, no?
Pues bien, a ese SQL está algo "mal" 1.- Lo sobra la unión (join) con la tabla maestra (teniendo el campo por el que buscar en la tabla detalle, es una tontería consumir recursos para hacer una join) 2.- Al quitar la join, le falta un parámetro, que es Consumo del cual quieres calcular la suma, sino te lo calculará de todo (cláusula where) por lo que te podría quedar algo así: y desde código hacer algo así: Consejo: acostúmbrate a no usar variables de tipo Variant cuando sabes, de entrada, el tipo de dato que será Consejo2: dentro de un mismo formulario/módulo de datos, no hace falta que hagas referencia a éste Espero que te sirva
__________________
Si no tienes algo que decir más importante que el silencio, cállate |
|
#3
|
|||
|
|||
|
Suma de un campo
Muchas gracias Cbrrr, anduvo perfecto!!!, lo unico que no me reconoce es cuando defino x como Float, tuve que definirla como Currency.
Saludos. Silvio.- |
|
#4
|
||||
|
||||
|
Perdón, sí, estaba yo pensando en bases de datos. El Float debería haber sido un Real (o un Currency como tu dices)
__________________
Si no tienes algo que decir más importante que el silencio, cállate |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|