Einzelnen Beitrag anzeigen

Benutzerbild von MarcoWarm
MarcoWarm

Registriert seit: 10. Sep 2003
Ort: Großhennersdorf
532 Beiträge
 
Delphi 10.1 Berlin Professional
 
#5

AW: FastReport und Objekte Entscheidungshilfe

  Alt 20. Jun 2011, 07:42
ein klein wenig zum Prinzip:

du benötigst ein Objekt, welches deine Daten hält. Wir nennen die Klasse mal TSettings . Und die Instanz der Klasse Settings .
Diese Klasse und deren Instanz registrierst du bei der Script Engine des Reports. Dafür brauchst du eine solche Klasse:
Delphi-Quellcode:
TSettingsFRFunctions = class(TfsRTTIModule)
  public
    constructor Create(AScript: TfsScript); override;
  end;
Delphi-Quellcode:
constructor TSettingsFRFunctions.Create(AScript: TfsScript);
begin
  inherited;
  
  with AScript do
  begin
    AddClass(TSettings, 'TObject');
    AddConst('Settings', 'TSettings', Integer(Settings));
  end;
end;
Diese Klasse TSettings braucht natürlich Eigenschaften. Die Properties, die du im Fastreport sehen/nutzen möchtest müssen unbedingt published sein.

Falls deine Klasse TSettings Eigenschaften enthält, die nicht published sind, musst du sie dem Script händisch mitteilen:

Delphi-Quellcode:
with AScript do
  begin
    with AddClass(TSettings, 'TObject') do
       AddProperty('Database', 'TpFIBDatabase', GetProp, nil);
  end;
Wenn dein Objekt Methoden benötigt, die du aus dem Report aufrufen musst:
Delphi-Quellcode:
with AScript do
  begin
    with AddClass(TSettings, 'TObject') do
      AddMethod('function Items : TStrings', OnCallMethod);
  end;
In OnCallMethod musst du natürlich definieren, was beim Methodenaufruf passiert.

Jetzt solltest du im Report mit deinem Objekt arbeiten können.

mehr dazu hier: http://logeas.socius-informatique.fr...rManual-en.pdf


Gruss
Marco
Marco Warm
TUO
TheUnknownOnes.net
  Mit Zitat antworten Zitat