Ver Mensaje Individual
  #1  
Antiguo 04-08-2011
lisc_dla lisc_dla is offline
Miembro
NULL
 
Registrado: jul 2011
Posts: 98
Reputación: 13
lisc_dla Va por buen camino
suma de campos de acuerdo a la fecha

en mi aplicación con base de datos estoy haciendo una búsqueda de productos vendidos y una suma de las ventas dependiendo de la fecha que se seleccione en el DateTimePicker, para no complicarme al momento de seleccionar la fecha esta se pasa a un label(lbl_fecha), la busqueda la se realiza perfectamente pero la suma no me la realiza es decir el cuadro de texto(txt_total) donde se debe de visualizar aparece en 0.
para la conexion utilizo un ADOConnection, adoquery, ADOTable, DataSource, DBgrid
el código es:
Código Delphi [-]
function SumarTotales(Grid: TDBGrid; const AFieldName: string): Currency;
var
  BM: TBookMarkStr;
begin
  Result:= 0;
  with Grid.DataSource.DataSet do
  begin
    BM:= Bookmark;
    DisableControls;
    while not Eof do
    begin
      Result:= Result + FieldByName(AFieldName).AsCurrency;
      Next;
    end;
    BookMark:= BM;
    EnableControls;
  end;
end;

procedure Tfrm_cortedecaja.DateTimePicker1Change(Sender: TObject);
var
   Filtro : String;
begin
  lbl_fecha.Caption:=DateToStr(DateTimePicker1.date);
  adotable1.Active:=true;
  if Adotable1.Locate('fecha',lbl_fecha.Caption,[]) = false then
  begin
   // si no encuentra productos no hace nada
  end 
  else
  begin
    AdoTable1.Filtered := False;
    AdoTable1.Filtered := False;
    Filtro := 'fecha = '+lbl_fecha.Caption;
    AdoTable1.Filter := Filtro;
    AdoTable1.Filtered := True;
    AdoTable1.Open;
   //en caso de encontrar productos vendidos realiza la suma
    AdoQuery1.SQL.Text := 'Select sum(importe) as total from caja '+
                         ' where fecha = '+lbl_fecha.Caption;
   AdoQuery1.Active := true;
   txt_total.Text := IntToStr(AdoQuery1.Fields[0].AsInteger);
  end;
end;

Última edición por ecfisa fecha: 04-08-2011 a las 02:42:34. Razón: Etiquetas [DELPHI] [/DELPHI]
Responder Con Cita