tienes razon
estoy haciendo esto
Código Delphi
[-]procedure TForm1.Button1Click(Sender: TObject);
var sqlstr :string;
_anio, _mes, _libro, _voucher, _CuentaGasto, _t_Analis, _Documento, _Anexo :String;
_Suma, _pagos ouble;
excel:Variant;
fila,columna:Integer;
Data : TDataSet;
begin
qryData104.Open;
ProgressBar1.Min := 0;
ProgressBar1.Max := qryData104.RecordCount;
while not qryData104.eof do
begin
Application.ProcessMessages;
_pagos := qryData104Importe.AsFloat;
ProgressBar1.Position := ProgressBar1.Position + 1;
_t_Analis := '';
_Anexo := '';
sqlstr := 'Select * from DetalleCuenta104 where ' +
'uanio = ' + QuotedStr(qryData104uanio.AsString) +
' and umes = ' + QuotedStr(qryData104umes.AsString) +
' and ulibro = ' + QuotedStr(qryData104ulibro.AsString) +
' and uvoucher = ' + QuotedStr(qryData104uvoucher.AsString) +
' and left(Cuentagasto,2) = ' + QuotedStr( Izquierda (qryData104CuentaGasto.AsString,2)) +
' and haber <> 0' +
' Order by anio, mes, libro, voucher';
qryTemporal.SQL.Clear;
qryTemporal.SQL.Add(sqlstr);
qryTemporal.Open;
qryTemporal.First;
_Anio := qryTemporalanio.AsString;
_mes := qryTemporalmes.AsString;
_libro := qryTemporalLibro.AsString;
_voucher := qryTemporalVoucher.AsString;
_suma := 0;
while not qryTemporal.eof do
begin
if (_anio = qryTemporalanio.AsString) and
(_mes = qryTemporalmes.AsString) and
(_libro = qryTemporalLibro.AsString) and
(_voucher = qryTemporalVoucher.AsString) then
begin
if qryTemporalHaber.AsFloat <> 0 then
begin
if Izquierda(qryTemporalCuentaGasto.AsString,2) = Izquierda(qryData104CuentaGasto.AsString,2) then
Begin
_Suma := _Suma + qryTemporalHaber.AsFloat;
_CuentaGasto := qryTemporalCuentaGasto.AsString;
_Documento := qryTemporalDocumento.AsString;
End;
end;
end;
qryTemporal.Next;
end;
if (_pagos - _Suma <> 0) then
Begin
cdsDiferentes.Append;
cdsDiferentesCuenta10.Value := qryData104cuenta10.AsString;
cdsDiferentesuanio.Value := qryData104uanio.AsString;
cdsDiferentesumes.Value := qryData104umes.AsString;
cdsDiferentesulibro.Value := qryData104ulibro.AsString;
cdsDiferentesuvoucher.Value := qryData104uvoucher.AsString;
cdsDiferentesPago.Value := qryData104Importe.AsFloat;
cdsDiferentesGasto.Value := _Suma;
cdsDiferentest_analis.Value := _t_Analis;
cdsDiferentesCuentaGasto.Value := _CuentaGasto;
cdsDiferentesDocumento.Value := _Documento;
cdsDiferentesAnexo.Value := _Anexo;
cdsDiferentes.Post;
End;
qryData104.Next;
end;
lo que esta resaltado
la idea es buscar en una tabla unos vouchers contables y verificar si la suma del haber cuadra con lo que esta en el queryData104