ecfisa |
17-04-2017 03:52:51 |
Hola Dergon.
Cita:
Empezado por Dergon
(Mensaje 515552)
...
,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 :)
|