oscarac
15-04-2009, 18:23:21
buenos dias,m tengo esta consulta, que me muestra los datos de unas tablas donde existen campos tanto en moneda nacional como extranjera (n = Nacional, u = Extranjera)
Select C.Anexo, C.FechaIngreso, C.NumIngreso, C.TipoDoc, C.Documento, C.TipoRef, C.DocRef, C.FechaReferencia,
D.Articulo, D.Cantidad, D.nPU, D.nIGV, D.nTotal,
D.uPU, D.uIGV, D.uTotal, A.RazonSocial, R.Descripcion from tblingresoC C
left join comunes.dbo.TblAnexo A On C.Anexo = A.Codigo
Left join TblIngresoD D on C.Periodo = D.Periodo and C.NumIngreso = D.NumINgreso
Left Join comunes.dbo.TblArticulo R on D.Articulo = R.Codigo
where C.Anexo between :AnxInicial and :AnxFinal
and C.FechaIngreso Between :FechaInicial and :FechaFinal
Order by A.RazonSocial, D.Articulo
luego agrego 3 campos calculados a la tabla (delphi)
Base (Base imponible)
Igv (impuesto)
Total (Total)
luego hago esto en CalFields
If frmComprasAnexo.rgMoneda.ItemIndex = 0 Then (determina en que moneda se saca el reporte)
begin
sCampo1 :='nTotal';
sCampo2 := 'nIGV'
end
else
begin
sCampo1 :='uTotal';
sCampo2 := 'nIgv'
end;
qryListadoComprasAnexoAnaliticoBase.value := qryListadoComprasAnexoAnaliticoBase.value + qryListadoComprasAnexoAnalitico.FieldByName(scampo1).Asfloat;
qryListadoComprasAnexoAnaliticoIgv.value := qryListadoComprasAnexoAnaliticoIgv.value + qryListadoComprasAnexoAnalitico.FieldByName(scampo2).Asfloat;
qryListadoComprasAnexoAnaliticoTotal.Value := qryListadoComprasAnexoAnaliticoTotal.Value + qryListadoComprasAnexoAnaliticoBase.Value + qryListadoComprasAnexoAnalitico.FieldByName(scampo2).Asfloat;
hasta ahi todo bien, muestra el reporte en la moneda que se desea, todo OK
pero cuando en el reporte quiero mostrar la suma de esos campos calculados, no lo suma, solo sale el ultimo valor, a que se debe esto?
ejemplo
Asi muestra Asi deberia ser
10 10
25 25
30 30
--- ---
30 65
alguien sabe de esto?
Select C.Anexo, C.FechaIngreso, C.NumIngreso, C.TipoDoc, C.Documento, C.TipoRef, C.DocRef, C.FechaReferencia,
D.Articulo, D.Cantidad, D.nPU, D.nIGV, D.nTotal,
D.uPU, D.uIGV, D.uTotal, A.RazonSocial, R.Descripcion from tblingresoC C
left join comunes.dbo.TblAnexo A On C.Anexo = A.Codigo
Left join TblIngresoD D on C.Periodo = D.Periodo and C.NumIngreso = D.NumINgreso
Left Join comunes.dbo.TblArticulo R on D.Articulo = R.Codigo
where C.Anexo between :AnxInicial and :AnxFinal
and C.FechaIngreso Between :FechaInicial and :FechaFinal
Order by A.RazonSocial, D.Articulo
luego agrego 3 campos calculados a la tabla (delphi)
Base (Base imponible)
Igv (impuesto)
Total (Total)
luego hago esto en CalFields
If frmComprasAnexo.rgMoneda.ItemIndex = 0 Then (determina en que moneda se saca el reporte)
begin
sCampo1 :='nTotal';
sCampo2 := 'nIGV'
end
else
begin
sCampo1 :='uTotal';
sCampo2 := 'nIgv'
end;
qryListadoComprasAnexoAnaliticoBase.value := qryListadoComprasAnexoAnaliticoBase.value + qryListadoComprasAnexoAnalitico.FieldByName(scampo1).Asfloat;
qryListadoComprasAnexoAnaliticoIgv.value := qryListadoComprasAnexoAnaliticoIgv.value + qryListadoComprasAnexoAnalitico.FieldByName(scampo2).Asfloat;
qryListadoComprasAnexoAnaliticoTotal.Value := qryListadoComprasAnexoAnaliticoTotal.Value + qryListadoComprasAnexoAnaliticoBase.Value + qryListadoComprasAnexoAnalitico.FieldByName(scampo2).Asfloat;
hasta ahi todo bien, muestra el reporte en la moneda que se desea, todo OK
pero cuando en el reporte quiero mostrar la suma de esos campos calculados, no lo suma, solo sale el ultimo valor, a que se debe esto?
ejemplo
Asi muestra Asi deberia ser
10 10
25 25
30 30
--- ---
30 65
alguien sabe de esto?