Ver Mensaje Individual
  #2  
Antiguo 26-10-2018
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Reputación: 21
gatosoft Va camino a la fama
Puedes utilizar desde delphi la función FindObject del reporte para obtener una instancia del memo o de la imagen y desde Delphi ajustar las propiedades

El sigueinte codigo asigna texto a un memo cuyo nombre se pasa como parametro... igual puedes ajustardesde aqui el left.

Código Delphi [-]
Uses frxClass;

Procedure TForm1.AsignarValorMemo(pMemoName, pMemoValue: String);
var
  t: TfrxMemoView;
Begin
  t := TfrxMemoView(frxReport1.FindObject(pMemoName));
  if t <> nil then
  t.Memo.Text := pMemoValue;
end;

Para hacer el ajuste, debes programar el evento OnBeforePrint de la banda que contiene lso componentes y hacer un llamado a una funcion externa (por ejemplo: AjustarTamanios)


Código Delphi [-]
//esto es en fastreports
procedure Header1OnBeforePrint(Sender: TfrxComponent);
begin
  AjustarTamanios();
end;

vuelves a Delphi y asignas la función externa al componente

Código Delphi [-]
procedure TForm1.Create(Sender: TObject);
begin
  frxReport1.AddFunction('function AjustarTamanios(): Boolean;');
end;

El componnte de fastreports TfrxReport, tiene un evento llamado OnUserFunction y allí verificas si la función fue llamada y haces los ajustes que consideres

Código Delphi [-]
function TForm1.frxReport1UserFunction(const MethodName: string;
  var Params: Variant): Variant;
begin
  if CompareText(MethodName, AjustarTamanios) = 0 then
     begin
      //aqui tu codigo para ajustar tamaños
   end;
end;
Responder Con Cita