PDA

Ver la Versión Completa : Problema con expresion en FastReport


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

jhonny
26-01-2009, 23:31:14
Podría ser que tu TfrxSysMemoView no este aceptando expresiones, por lo que deberías verificarlo, haciendo click derecho sobre dicho objeto y mirando que la opción "Permitir expresiones" este activa.

jhonny
26-01-2009, 23:36:53
Ademas, verifica que al reemplazar la formula, realmente quede encerrada dentro de los corchetes [Sum<...>]

jcarteagaf
27-01-2009, 11:10:45
Gracias Jhonny por tus respuestas, efectivamente el control tiene activa la opcion Permitir expresiones y he probado de ambas formas con corchetes y sin ellos y aun no funciona....alguna otra sugerencia?

Nuevamente gracias por su tiempo.

Saludos

jhonny
27-01-2009, 13:05:50
Gracias Jhonny por tus respuestas, efectivamente el control tiene activa la opcion Permitir expresiones y he probado de ambas formas con corchetes y sin ellos y aun no funciona....alguna otra sugerencia?

Nuevamente gracias por su tiempo.

Saludos

Prueba cambiando el TfrxSysMemoView por un TfrxMemoView normalito... si no funciona, muestranos el pedazo de codigo, donde haces ese cambio.