jueves, 5 de julio de 2012

5-) Formato condicional en FastReport(Parte 2)

Formato condicional en FastReport(Parte 2)

Ahora bien, continuamos con los formatos condicionales, que tal, que se nos presenta un caso un poco mas complicado.
Nuestro cliente quiere ver los saldos en varios colores. y los quiere ver de esta manera:
Saldos de menores de 5000 en verde
Saldos que entre 5000 y 8000 en naranja
Saldos mayores de 8000 en rojo

Para que este mas claro miren la siguiente imagen


Para este ya tendremos que programar un poco, FastReport es un diseñador de reportes potente que nos permite implementar código en nuestro reportes y variar los resultados de nuestros reportes.

El paradigma de programación siempre es el orientado a objecto, usando propiedades y eventos.
Los script que soporta son los siguientes:
  1. PascalScript
  2. C++Script
  3. BasicScript
  4. JScript
En nuestro caso usaremos PascalScript y primero que conoceremos es saber donde podemos codificar.
Usaremos para nuestro propósito el evento AfterData del objecto "memo12" que es de la clase "TfrxMemoView". veamos la siguiente imagen para ubicarnos.



La fecha rojo indica donde esta el objecto que deseamos usar, le damos clic. Ahora fijemos la mirada en la fecha verde, esa flecha verde esta apuntando a una pestaña llamada "Events" en la ventana "Object Inspector". la pestaña "events" muestra los eventos del objecto seleccionado.
En nuestro caso usaremos el evento "OnAfterData" este evento se ejecuta después que el objecto a obtenido la data y esto sucede antes de imprimir dicha data.
Ahora observemos la fecha azul, esta apuntando la misma linea del evento "OnAfterData" pero un poco mas a la derecha, donde no hay texto, en ese punto de damos doble clic.


No mostrara el editor de código, la fecha roja indica las pestañas que nos sirven para poder ver de forma rápida el diseño del reporte o regresar rápidamente al código. La pestaña "Page1" nos regresa a donde estábamos y la pestaña "Code" a la que vemos en la imagen

Si observamos la fecha verde, "fastReport" nos creo el cuerpo del procedimiento que se ejecutara cuando ocurra el evento.



La fecha azul es el cuerpo principal, pero no lo usaremos esta vez.


Ahora agregaremos este codigo, basados en los que explicamos al principio.

       if value > 8000 then
       memo12.font.color:=clRed
       else if (value >= 5000) and  (value <= 8000) then
       memo12.font.color:=$000080FF          
       else if value < 5000 then
       memo12.font.color:=clGreen;
Tendríamos que verlo así:


Como pueden observar el codigo usa la expresion "value" para comparar el dato que obtuvo el objecto y lo compara con estos tres criterios

Saldos de menores de 5000 en verde
Saldos que entre 5000 y 8000 en naranja
Saldos mayores de 8000 en rojo
Observe que "Memo12" es el objecto que cambios el color de sus letras, Atraves del miembro "Font" y su propiedad "Color"

El color que usamos en el caso que comparamos entre 5000 y 8000, usamos el valor hexadecimal, este valor lo podemos encontrar usando el dialogo que usamos para ver los colores. 

Espero les sirva y espero siempre sus comentarios.
Descarga el contenido de esto blog. Texto y videos. http://adf.ly/1SLDQq