Hola Dergon.
Cita:
Empezado por Dergon
...
,pero lo que en realidad necesito es que lo haga cada vez que salte una columna a otra.
...
|
Si necesitas que el código se ejecute cada vez que el usuario cambie de columna, podes detectar el cambio usando el evento
OnCellClick del
TDBGrid:
Código Delphi
[-]
...
procedure TForm1.DBGrid1CellClick(Column: TColumn);
{$J+}
const PrevCol : Integer = 0;
{$J-}
begin
if PrevCol <> Column.Index then begin dm_dados.qySuma.Close;
dm_dados.qySuma.SQL.Text := 'SELECT SUM( VALORTOTAL ) AS SUMA FROM SAIPRODUTO';
dm_dados.qySuma.Open;
dm_dados.tbl_sadapai.Edit;
dm_dados.tbl_sadapai.FieldByName( 'VALORTOTAL' ).AsCurrency :=
dm_dados.qySuma.FieldByName( 'SUMA' ).AsCurrency;
PrevCol := Column.Index; end;
end;
Con seguridad encuentres que los nombres de tabla y campos difieren con los que les hayas dados, corrígelos.
Por otro lado, accionando ante el cambio de columna, no verás reflejado el nuevo valor (o el anterior o modificado) hasta que haya sido guardado. Por lo que pareciera mas adecuado usar el evento
AfterPost del
TDataSet asociado en su lugar.
Si nos explicas con mas detalle la finalidad del código del mensaje
#1, con seguridad podremos proponerte mas opciones.
Saludos