Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Validacion FastReport. Urgente, plz... (https://www.clubdelphi.com/foros/showthread.php?t=55764)

mtirado 25-04-2008 20:03:41

Validacion FastReport. Urgente, plz...
 
Hola a todos. tenog una duda sobre como validar en FastReport.
El caso es que necesito hallar el porciento de cumplimiento de dos planes de producciones, Plan1 y Plan2, la formula es %=Plan2*100/Plan1 El plan1 es el planidicado y el plan2 es el real realizado. Como puedo validar para el caso en el que el Plan1 o Plan2 sea igual a cero, y no me de error de division por cero???? Por otra parte como puedo cambiar el color del valor del %, es decir si el % me da por debajo de 95 poner la letra en rojo, sino en azul. Como hago eso? Espeor puedan ayudarme.
Saludos.

maeyanes 25-04-2008 20:52:41

Hola...

Primero que nada, te recomiendo que repases de nuevo la Guía de Estilo de estos foros (enlace en el menú superior del foro). Esto es por que en estos foros no existe el concepto de Urgencia... :)

Sobre tu problema, solo te puedo dar pistas, ya que no uso FastReport...

Checa que el componente Label que usas para mostrar el resultado de la operación tenga un evento OnBeforePrint o un OnGetText...

Para verificar que tu operación no te produzca un error de División por Cero puedes validar mediante un if..then:

Código Delphi [-]
if (Plan1 = 0) then
  Porcentaje := x
else
  Porcentaje := (Plan2 * 100) / Plan1;

// Cambiar el color dependiendo del resultado:

if Porcentaje < 95 then
  LabelFastReport.Font.Color := clRed
else
  LabelFastReport.Font.Color := clBlue;
Text := Format(%d%%', [Porcentaje])


Saludos...

mtirado 25-04-2008 21:02:29

a ver....
 
No sabia que no se podia poner lo de urgencia, solo era una forma de poner un titulo al hilo...
A ver yo se como hacer ese codigo que me dices, pero como nunca he trabajado en el fastreport no se como decirle por codigo que me haga una u otra cosa, esa era mi dudo. Por lo que necesito es ver a alguien que si haya trabajado con el FASTREPORT y haya pasado por esa o similar situacion a la mia. NO se si me entiendes?
Saludos a todos.

maeyanes 25-04-2008 21:12:54

Hola...

Pues con lo que te puse te estoy dando respuesta...

Casi todos, si no es que todos, los componentes de reportes de los reporteadores tienen eventos OnBeforePrint, OnAfterPrint...

Entonces solo tienes que usar ese evento para realizar lo que necesitas:

Código Delphi [-]
procedure TForm1.frLabelBeforePrint(Sender: TObject);
begin
  // Calculamos el porcentaje
  // Cambiamos el color de acuerdo al resultado
  // Asiganmos el resultado a la propiedad Text o Caption del Label
end;


Saludos...

mtirado 25-04-2008 21:17:40

Salduos.
 
Crees que eso sea asi? Es que cuanod pongo un label en el reporte, no veo ninguna propiedad del mismo o evento, ni tansiquiera el nmbre del mismo, eso es lo raro.

maeyanes 25-04-2008 21:24:21

Hola...

Leyendo en la página de FastReport, parece ser que este usa Scripts...

Puede que ahí esté la solución a tus problemas...



Saludos...

cloayza 25-04-2008 22:13:47

Edita el objeto TfrMemoView, que usaras para desplegar tu calculo,

Y coloca el siguiente codigo.

Código Delphi [-]
[IF(Table1."PLAN1">0,Table1."PLAn2"*100/Table1."PLAN1",0)]

Luego en las propiedades del TfrMemoView, busca la que dice "Highlight", presiona sobre los "...", se mostrara un Dialogo, en "Condition" coloca lo siguiente:

Código Delphi [-]
VALUE<95

En Font presiona el boton "A Color", y le das el color que desees.

Espero que te sirva.
Saludos desde

Concepcion-Chile


La franja horaria es GMT +2. Ahora son las 17:35:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi