jcarteagaf
26-01-2009, 22:36:43
Hola amigos del Foro, tengo el siguiente problema con una reporte hecho en FastReport: Mi reporte genera un informe que puede estar expresado en 1 de 3 monedas, de acuerdo a esto el usuario elige la moneda en la que desea ver el informe (inicialmente la información es desplegada en un Grid, por lo que el usuario puede elegir mas de una moneda a la vez para visualizar esta info, sin embargo en el reporte solo se imprime una)
Uso el siguiente codigo para modificar el reporte para imprima el detalle segun la moneda elegida:
var
fmvDebe,fmvHaber,fmvSaldo : TfrxMemoView;
fmvDebeCaption,fmvHaberCaption,fmvSaldoCaption : TfrxMemoView;
sSimbolo : string;
begin
inherited;
sMoneda := GetMoneda(); // Obtiene la moneda elegida (solo una)
sDebe := 'DEBE'+sMoneda; // Crea el nombre del campo segun la moneda
sHaber := 'HABER'+sMoneda;
sSaldo := 'SALDO'+sMoneda;
case sMoneda of
'B' : sSimbolo := 'Bs.';
'D' : sSimbolo := '$us';
'E' : sSimbolo := 'Euro';
'F' : sSimbolo := 'UFV';
end;
with frxReporte do
begin
fmvDebe := FindObject('fmvDebe') as TfrxMemoView; // obtiene el objeto
fmvHaber := FindObject('fmvHaber') as TfrxMemoView;
fmvSaldo := FindObject('fmvSaldo') as TfrxMemoView;
fmvDebe.DataField := sDebe;
fmvHaber.DataField := sHaber;
fmvSaldo.DataField := sSaldo;
fmvDebeCaption := FindObject('fmvDebeCaption') as TfrxMemoView;
fmvHaberCaption := FindObject('fmvHaberCaption') as TfrxMemoView;
fmvSaldoCaption := FindObject('fmvSaldoCaption') as TfrxMemoView;
fmvDebeCaption.Text := 'Debe '+sSimbolo;
fmvHaberCaption.Text := 'Haber '+sSimbolo;
fmvSaldoCaption.Text := 'Saldo '+sSimbolo;
Hasta ahi todo funciona bien, sin embargo no puedo hacer lo mismo con los totales y subtotales, uso un TfrxSysMemoView con el siguiente formato : [SUM(<Tabla."DebeB">,MasterData2)], al querer realizar una operación parecida a la anterior (reemplazando el nombre del campo por el campo adecuado segun la moneda elegida) no se muestra el valor sino el texto mismo de la funcion: SUM(<.....
Podrian darme un tip para poder realizar esta operación.
Gracias de antemano por su tiempo.
Saludos
Uso el siguiente codigo para modificar el reporte para imprima el detalle segun la moneda elegida:
var
fmvDebe,fmvHaber,fmvSaldo : TfrxMemoView;
fmvDebeCaption,fmvHaberCaption,fmvSaldoCaption : TfrxMemoView;
sSimbolo : string;
begin
inherited;
sMoneda := GetMoneda(); // Obtiene la moneda elegida (solo una)
sDebe := 'DEBE'+sMoneda; // Crea el nombre del campo segun la moneda
sHaber := 'HABER'+sMoneda;
sSaldo := 'SALDO'+sMoneda;
case sMoneda of
'B' : sSimbolo := 'Bs.';
'D' : sSimbolo := '$us';
'E' : sSimbolo := 'Euro';
'F' : sSimbolo := 'UFV';
end;
with frxReporte do
begin
fmvDebe := FindObject('fmvDebe') as TfrxMemoView; // obtiene el objeto
fmvHaber := FindObject('fmvHaber') as TfrxMemoView;
fmvSaldo := FindObject('fmvSaldo') as TfrxMemoView;
fmvDebe.DataField := sDebe;
fmvHaber.DataField := sHaber;
fmvSaldo.DataField := sSaldo;
fmvDebeCaption := FindObject('fmvDebeCaption') as TfrxMemoView;
fmvHaberCaption := FindObject('fmvHaberCaption') as TfrxMemoView;
fmvSaldoCaption := FindObject('fmvSaldoCaption') as TfrxMemoView;
fmvDebeCaption.Text := 'Debe '+sSimbolo;
fmvHaberCaption.Text := 'Haber '+sSimbolo;
fmvSaldoCaption.Text := 'Saldo '+sSimbolo;
Hasta ahi todo funciona bien, sin embargo no puedo hacer lo mismo con los totales y subtotales, uso un TfrxSysMemoView con el siguiente formato : [SUM(<Tabla."DebeB">,MasterData2)], al querer realizar una operación parecida a la anterior (reemplazando el nombre del campo por el campo adecuado segun la moneda elegida) no se muestra el valor sino el texto mismo de la funcion: SUM(<.....
Podrian darme un tip para poder realizar esta operación.
Gracias de antemano por su tiempo.
Saludos