Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Werkzeuge (https://www.delphipraxis.net/63-sonstige-werkzeuge/)
-   -   Umstieg von QuickReport auf FastReport (https://www.delphipraxis.net/208868-umstieg-von-quickreport-auf-fastreport.html)

harfes 23. Sep 2021 10:54

Umstieg von QuickReport auf FastReport
 
Ich habe mit Delphi 11 die FastReport Komponenten installiert und möchte diese nun für neue Projekte nutzen, da QuickReport quasi nicht mehr existiert (die Homepage gibt es zwar noch, aber auf Anfragen wird nicht mehr reagiert - da gibt es ja schon einige Hnweise hier im Forum). Zum Testen habe ich einen Report von QR nach FR mit deren Konverter-Tool erfolgreich konvertiert und kann diesen auch (wenn ich eine frxReport Komponente auf dem Form ablege) problemlos aufrufen. Die Bänder und Elemente sind alle Vorhanden, aber wenn ich die Variablen füllen möchte, dann werden diese nicht angezeigt:

frxReport1.LoadFromFile('Vertrag1.fr3');
frxReport1.Variables['QRLabel6']:=QuotedStr('TEST');
frxReport1.ShowReport;

QRLabel6 ist der Name der Varaibalen aus dem alen QR. Es kommt keine Fehlermeldung...aber es wird auch nix angzeigt (fixe Elemente wie z.B. Logo oder direkt hinterlegter Text werden aber angezeigt). Was mach ich falsch?

Hartmut

ernschd 23. Sep 2021 11:19

AW: Umstieg von QuickReport auf FastReport
 
Hallo Hartmut,

benutze das Event "OnGetValue" zum setzen der Werte:
Delphi-Quellcode:
procedure TForm1.frxReport1GetValue(const VarName: string; var Value: Variant);
begin
  if VarName = 'QRLabel6' then Value := QuotedStr('TEST');
end;
So sollte es funktionieren.

mytbo 23. Sep 2021 12:35

AW: Umstieg von QuickReport auf FastReport
 
Zitat:

Zitat von harfes (Beitrag 1495295)
Was mach ich falsch?

Delphi-Quellcode:
function PrepareVariableValue(const pmcValue: Variant): Variant;
begin
  case VarType(pmcValue) of
    varOleStr, varString, varUString:
      Result := QuotedStr(VarToStr(pmcValue));
    else
      Result := pmcValue;
  end;
end;

procedure ...AddVariable(const pmcCategory, pmcVariableName: String; const pmcValue: Variant);
begin
  Report.Variables.AddVariable(pmcCategory, pmcVariableName, PrepareVariableValue(pmcValue));
end;

AddVariable('Kategorie01', 'Test03', 'Thomas');
Bis bald...
Thomas

harfes 23. Sep 2021 13:13

AW: Umstieg von QuickReport auf FastReport
 
Danke für eure Ideen...aber mein 'Test' wird leider nicht angezeigt. Es bleibt der Text 'QRLabel6' stehen und wird nicht gegen 'Test' ausgetauscht. Muss ich den Text vorher löschen? Ich finde es eh schon recht komisch, dass die Variablen nicht direkt angesprochen werden können...

Hartmut

harfes 23. Sep 2021 14:24

AW: Umstieg von QuickReport auf FastReport
 
So, jetzt bin ich zumindest mit den einfachen Variablen erfolgreich weiter:

var
Text6 : TfrxMemoView;

frxReport1.LoadFromFile('Vertrag1.fr3');
frxReport1.Variables.Clear;
Text6:=frxReport1.FindObject('QRLabel6') as TfrxMemoView;
Text6.Text:='Test';
frxReport1.ShowReport;

ABER: jetzt muss ich noch eine QRRichText1-Vatiable mit einem Text aus einer Datei füllen...dazu habe ich eine Variable angelegt:

VText : TfrxRichView;

und

VText:=frxReport1.FindObject('QRRichText1') as TfrxRichView;

ausgeführt. Ein frxRichObject liegt auf dem Form. Dann komme ich aber nicht weiter, da es anscheinend kein LoadFromFile gibt??? Was ist da zu tun?

Hartmut

harfes 23. Sep 2021 14:37

AW: Umstieg von QuickReport auf FastReport
 
OK, auch gelöst:

VText.RichEdit.Lines.LoadFromFile(...);

So langsam gewöhne ich mich wohl an den Report-Generator...

Hartmut

Lemmy 23. Sep 2021 20:07

AW: Umstieg von QuickReport auf FastReport
 
Zitat:

Zitat von harfes (Beitrag 1495308)
So, jetzt bin ich zumindest mit den einfachen Variablen erfolgreich weiter:

var
Text6 : TfrxMemoView;

frxReport1.LoadFromFile('Vertrag1.fr3');
frxReport1.Variables.Clear;
Text6:=frxReport1.FindObject('QRLabel6') as TfrxMemoView;
Text6.Text:='Test';

QRLabel16 ist also keine Variable, sondern ein Memo.

Alternativ: FR im Desinger aufmachen und dort unter dem Menüpunkt Report - Variablen eine Variable "Test" erstellen.

Dann in QRLable6 als Text [Test] eingeben oder aus der Variablenübersicht auswählen. Und dann wie die anderen schon geschrieben haben die Variable Test von "außen" sprich Delphicode füllen...

harfes 24. Sep 2021 07:39

AW: Umstieg von QuickReport auf FastReport
 
Naja, ein Memo ist ja auch eine Variable...
Da ich als Neueinsteiger in FastReport erstmal mit dem vom Konverter erzeugten Report klar kommen muss, taste ich mich da langsam heran. Und natürlich habe ich gesehen, dass es auch eine Text-Variable gibt, aber wollte erstmal den Umstieg schaffen. Übrigens finde ich den Konverter sehr gut, da der konvertierte Report schnell aufzeigt, wie das in FR umgesetzt werden kann.
Das Bedienkonzept vom FR ist aber doch sehr unterschiedlich zum Quickreport. Des weiteren sehe ich bei den Möglichkeiten aber keinen grossen Unterschied zwischen den beiden Generatoren - ABER: FastReport wird weiterentwickelt und QuickReport offensichtlich nicht, daher ist ein Umstieg bei neuen Projekten für mich notwendig - und das ist gerade der Fall.
Da ich meine Delphi-Versionen jeweils in einer eigenen VM habe, kann ich ältere Projekte auch weiterhin noch mit QuickReport fortführen, falls dort Änderungen anstehen. Erst wenn ich ein älteres Projekt wirklich mit einem neuren Delphi kompilieren muss, wird's - mindestens was den Report-Generator betrifft - aufwendig...

Hartmut

himitsu 24. Sep 2021 08:53

AW: Umstieg von QuickReport auf FastReport
 
Es kann auch sein, dass Variablen nicht überall richtig übersetzt wurden, also dort wo sie verwendet/abgefragt werden,
bzw. dass man nicht einfach so "ohne" Variablen über den Komponenten-Namen als Variable dessen Inhalt setzen kann. (ging vielleicht im QR, aber nicht im FR)

Ein Memo selbst ist in diesem Sinne keine Variable,
aber man kann eine <variable> in deren Inhalt verwenden, um dessen Inhalt mit dem Inhalt einer Variable füllen zu lassen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:40 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