PDA

Ver la Versión Completa : Quick Report Ver.2 versus Ver.3


aig
14-04-2004, 14:21:00
Hola.

Tengo una tqrexpr en un QuickReport con el siguiente código en el BeforePrint:

qrExprPepita.Expression:= FormatFloat('###,##0.00', NombreCampo.asFloat);

Esto con la versión 2 de qr funciona sin ningún problema, pero con la versión 3 al imprimir aparece el mensaje Illegal character in numeric contant "valor"

¿Alguién sabe porqué?
Gracias.

delphi.com.ar
14-04-2004, 15:21:13
¿Que es lo que llamas "valor" o que propiedad es "valor"?

__cadetill
14-04-2004, 15:28:28
Yo hay algo que no termino de entender

Para dar formato al valor visualizado por el TQrExpr existe la propiedad Mask y, la propiedad Expression es para hacer una expresión que es lo que calculará el componente estilo a Sum(Tabla.Campo) o cualquier otra

aig
14-04-2004, 17:11:27
Con "valor" quería decir el valor que tiene el NombreCampo.asFloat, por ejemplo si NombreCampo.asFloat es igual a 19.50 , el mensaje será
Illegal character in numeric contant "19,50"

Por supuesto que existe la propiedad mask y que se podría pasar el campo como NombreCampo.asString en ejecución y que mask se encargue de darle formato, pero el mensaje aparece de todos modos. El motivo de realizar esta consulta en el foro no es mas que averiguar porqué la versión 2 de QR permitía esa instrucción y la ejecutaba correctamente y en cambio la versión 3 suelta ese mensaje.
Simplemente es curiosidad o cabezonería, digamos que esto no supone un problema ya que soluciones hay muchas (la primera quitar el componente tqrExpr y poner un tqrLabel). Todo esto surgió al migrar una aplicación a delphi 6.

Repito: esto no supone un problema por el que merezca perder el tiempo, si sabeis el motivo bien y si no, por favor no perdais el tiempo en averiguarlo.

Muchas gracias.

__cadetill
14-04-2004, 17:20:46
Bueno, en la versión del QR que biene en Delphi 6, se realizaron bastantes cambios (sobretodo a nivel de parámetros a eventos y métodos). Seguramente esto también sea devido a uno de los cambios que QSoft hizo, pero, al no tener los fuentes de los componentes, es difícil saberlo con certeza

marcoszorrilla
14-04-2004, 19:32:24
La verdad es que lo más lógico como dice Cadetill es utilizar la propiedad Mask, porque es mucho más simple.

Pero referente al error:

property Expression : String

Description

Enter the expression to evaluate in the Expression property.

It is not allowed to change the expression during report generation.

Un Saludo.