Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi FastReport (https://www.delphipraxis.net/133232-fastreport.html)

DevStar 28. Apr 2009 09:05


FastReport
 
Wie kann ich aus einem FastReport-Bericht einen anderen laden?

Ich habe einen Button in einem Dialog. Darüber soll ein weiterer Report geladen werden.

Leider klappt das nicht, bzw. ich finde kein beispiel, wie ich das machen könnte.

LG
DevStar

chaosben 28. Apr 2009 09:16

Re: FastReport
 
Ich würde aus der Anwendung eine neue Funktion im FastReport registrieren, an die du die nötigen Parameter übergibst.
Dann kann die Anwendung den 2. Report öffnen.

Das könnte in etwa so funktionieren:

Delphi-Quellcode:
uses fs_iinterpreter;

...

type
  TFunctions = class(TfsRTTIModule)
  private
    function CallMethod(Instance: TObject; ClassType: TClass;
      const MethodName: String; var Params: Variant): Variant;
  public
    constructor Create(AScript: TfsScript); override;
  end;

function TFunctions.CallMethod(Instance: TObject; ClassType: TClass;
  const MethodName: String; var Params: Variant): Variant;
begin
  if SameText(MethodName, 'ExecReport') then
    //führ den 2. Report aus
end;

constructor TFunctions.Create(AScript: TfsScript);
begin
  inherited Create(AScript);
  with AScript do
  begin
    AddMethod('procedure ExecReport(AFilename : String)', CallMethod);
  end;
end;

initialization
  fsRTTIModules.Add(TFunctions);

finalization
  if fsRTTIModules <> nil then
  begin
    fsRTTIModules.Remove(TFunctions);
  end;

DevStar 28. Apr 2009 10:35

Re: FastReport
 
Ja, danke. Das müsste klappen.

Das laden eines 2. Reports im Fastreport führt immer zu einer Schutzverletzung, weil es keine direkten Befehl gibt.

Danke.
DevStar


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz