Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Fast Report no me deja programar eventos (https://www.clubdelphi.com/foros/showthread.php?t=89528)

JoAnCa 07-12-2015 16:01:56

Fast Report no me deja programar eventos
 
Hola a todos
Estoy usando el FastReport 5.0 que viene con el Delphi RAD Studio 10, y todo funciona muy bien excepto que no me permite programar eventos
Cuando le hago clic a la pestaña de Eventos es como si estuviera inhabilitada, lo mismo que la pestaña Code

Por que sucedera esto?
Habra q hacer alguna configuracion adicional? o que? :confused:

JoAnCa 07-12-2015 18:32:00

Ya supe que es porque la version de FastReport q viene con el RAD Studio 10, tiene esa opcion deshabilitada, parta habilitarla hay q comprar la version completa

Lo q necesito hacer es, q en dependencia del valor de una fila, me muestre los numeros con 2 o 4 decimales
De q forma se podra hacer sin recurrir a los eventos?

Casimiro Notevi 07-12-2015 19:18:38

Cita:

Empezado por JoAnCa (Mensaje 500277)
Ya supe que es porque la version de FastReport q viene con el RAD Studio 10, tiene esa opcion deshabilitada, parta habilitarla hay q comprar la version completa

¿En serio?

AgustinOrtu 07-12-2015 21:29:52

Si, es la llamada versión Embarcadero Edition
Una forma de hacerlo es usando funciones

Te debo para más tarde un ejemplo que desde el teléfono es imposible, pero se ha tratado el tema en estos foros

Casimiro Notevi 07-12-2015 21:59:11

Cita:

Empezado por AgustinOrtu (Mensaje 500288)
Si, es la llamada versión Embarcadero Edition

¿Es una versión de prueba?

AgustinOrtu 07-12-2015 22:47:34

Cita:

Empezado por Casimiro Notevi (Mensaje 500289)
¿Es una versión de prueba?

No, no es de prueba, solamente que no tiene todas las caracteristicas habilitadas

Aca hay una tabla comparativa

Con respecto al post, primero hay que agregar la declaracion de la funcion al reporte:

Código Delphi [-]
procedure TForm1.FormCreate(Sender: TObject);
begin
  frxReport1.AddFunction('function FuncionA: string;'); // sin parametros
  frxReport1.AddFunction('function FuncionB(const Value: Variant): string;'); // con un parametro
  frxReport1.AddFunction('function FuncionC(const Value1, Value2..ValueN: Variant): string;'); // con n parametros

  frxReport1.AddFunction('function FuncionD: Integer;'); // otro tipo de retorno
end;

Luego hay un evento que hay que implementar, el OnUserFunction:

Código Delphi [-]
function TForm1.frxReport1UserFunction(const MethodName: string; var Params: Variant): Variant;
begin
  if MethodName = 'FUNCIONA' then // siempre en mayuscula
    Result := 'Funcion A'
  else if MethodName = 'FuncionB' then
   Result := IntToStr(Params[0])
  else if MethodName = 'FuncionC' then // puedo llamar a otra funcion sin problemas
   Result := CalcularFuncionC(Params[0], Params[1])
end;

Luego pones un Memo en el Reporte, y en su text lo siguiente:

Código Delphi [-]
[NOMBREFUNCION(Param1, Param2, ParamN)]

[FUNCIONA)]

[FUNCIONB(Param1)]

JoAnCa 07-12-2015 23:33:15

Muchas gracias, tendre en cuenta tu sugerencia, aunque resolvi con este codigo q me ayudo Egostar


Código Delphi [-]
procedure TModuloReport.frIndicadoresBeforePrint(Sender: TfrxReportComponent);
var
  Plan, Real  :TfrxMemoView;
  Fila        :Integer;
 
begin
  Fila := frdsIndicadores.DataSet.FieldByName('Fila').AsInteger;
  Plan := frIndicadores.FindObject('frdsCertificoPlan') as TfrxMemoView;
  Real := frIndicadores.FindObject('frdsCertificoReal') as TfrxMemoView;
  if Fila = 10 then
    begin
      Plan.DisplayFormat.FormatStr:='0.0000';
      Real.DisplayFormat.FormatStr:='0.0000';
    end
  else
    begin
      Plan.DisplayFormat.FormatStr:='#,##0.00';
      Real.DisplayFormat.FormatStr:='#,##0.00';
    end;
end;


La franja horaria es GMT +2. Ahora son las 18:59:45.

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