Ver Mensaje Individual
  #6  
Antiguo 07-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Reputación: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
¿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)]
Responder Con Cita