Tema: Dbgrid
Ver Mensaje Individual
  #4  
Antiguo 17-04-2017
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Dergon.

Cita:
Empezado por Dergon Ver Mensaje
...
,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  // ¿ Es la columna previa diferente de la actual ? 
  begin                              // Si...         
    //Usar una consulta SQL para obtener la sumatoria es (por mucho) mas eficiente
    //que recorrer secuencialmente la tabla haciendo sumas sucesivas. 
    //Por ejemplo: 
    dm_dados.qySuma.Close;
    dm_dados.qySuma.SQL.Text := 'SELECT SUM( VALORTOTAL ) AS SUMA FROM SAIPRODUTO';
    dm_dados.qySuma.Open;
    
    // Actualizar el campo de valor total
    dm_dados.tbl_sadapai.Edit;
    dm_dados.tbl_sadapai.FieldByName( 'VALORTOTAL' ).AsCurrency :=  
      dm_dados.qySuma.FieldByName( 'SUMA' ).AsCurrency;

    PrevCol := Column.Index;    // PrevCol es ahora la actual
  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
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita