Pues ahora si que necesito ayuda porque me he quedado en blanco
Ando con el tema de los famosos cálculos.
Ya he conseguido, creando un campo calculado en la tabla TDesgloseAlbaran y llamado Importe, que me de un importe en cada linea de albaran.
Lo he añadido desde el DTMGesatrans y en la tabla he metido en el evento OnCalcFields
Código Delphi
[-]
procedure TDTMGesatrans.TDesgloseAlbaranCalcFields(DataSet: TDataSet);
begin
TDesgloseAlbaranImporte.AsCurrency := TDesgloseAlbaranPortes.AsFloat + TDesgloseAlbaranReexpedicion.AsFloat + TDesgloseAlbaranOtros.AsFloat;
end;
Esa parte funciona sin problemas.
Ahora necesito que el Campo Base de la Tabla TAlbaranes sea la suma del campo importe (de TDesgloseAlbaran) teniendo en cuenta como filtro que todas las lineas a sumar tienen en comun el campo Num_Albaran.
A simple vista no tiene mucha complicación pero creo que el SQL me tiene manía, os digo lo que he hecho pero que no funciona:
He creado en el form del albaran una Query llamada ADOQAlbaran enlazada logicamente con TDesgloseAlbaran, hasta ahí creo que voy bien.
Ahora para el calculo (solo para probar) he puesto un botón y en el evento OnClick estoy probando esto:
Código Delphi
[-]
ADOQAlbaran.Active := False;
ADOQAlbaran.Sql.add ('Select sum(Importe) as TotalImporte');
ADOQAlbaran.Sql.add ('From Desglose_Albaran');
ADOQAlbaran.Sql.add ('Where Num_Albaran = StrToInt (DBEdit1.text)');
ADOQAlbaran.Active := True;
ShowMessage('El importe total es ' + TotalImporte.AsCurrency);
De momento solo me conformo con que aparezca ese mensaje con el total para comprobar que esté bien, luego la finalidad es que lo ponga en DBEdit24.
DBEdit1 para que os orienteis es la casilla donde ya está el núm de albarán.
No funciona de esta manera pero soy incapaz de saber porque. Para empezar tengo que poner como nombre de tabla Desglose_Albaran (que es nombre original de access) en vez de TDesgloseAlbaran (que es el que tengo en el DT), eso me da igual pero no lo entiendo.
Luego el error me lo da diciendo que TotalImporte no está declarada.
Importe es de tipo Currency por cierto.
No paso de aqui.
Si alguno me podeis echar una mano os lo agradezco, veo que el sql y yo somos muy diferentes
Gracias por adelantado