![]() |
Datenbank: MS SQL • Zugriff über: ADO
Fastreport Variablen übergeben und anzeigen
Hi,
wie kann ich Variablen an Fastreport übergeben und als Text anzeigen, oder in einer Query innerhalb des Reports verwenden? Ich habe es momentan wie folgt versucht, erhalte aber immer die Meldung, das die Variable nicht gefunden wurde...
Delphi-Quellcode:
Die Variable innerhalb des Reports anzuzeigen müsste doch mit einem Memo mit dem Inhalt [FromDate] funktionieren??
procedure TDM_Report.ShowActivityReport(ReportType: TReportType);
const ReportFiles: array[TReportType] of String = ('Activity.fr3'); var DB: TfrxADODatabase; FileName: String; begin FileName := ExtractFilePath(ParamStr(0)); if frxActivityReport.LoadFromFile(FileName + ReportFiles[ReportType]) then begin DB := frxActivityReport.FindComponent('ADODatabase') as TfrxADODatabase; DB.DatabaseName := FRM_Main.ReadConnection.ConnectionString; DB.Connected := True; frxActivityReport.ShowReport; end else ShowMessage('Could not find report file "' + ReportFiles[ReportType] + '".'); end; procedure TFRM_AddActivity.Button2Click(Sender: TObject); var RT: TReportType; begin DM_Report.frxActivityReport.Variables['FromDate'] := '22.10.2007 23:59:59'; DM_Report.frxActivityReport.Variables['ToDate'] := '28.10.2007 23:59:59'; RT := TReportType(rtActivity); DM_Report.ShowActivityReport(RT); end; Thanx Marcus |
Re: Fastreport Variablen übergeben und anzeigen
Du musst Deinen Variablen noch eine Kategorie in FR4 geben.
Das macht man mit
Delphi-Quellcode:
Dann kannst Du Deine Variablem auch im Fastreport benutzen. Sie sind dann in der Kategorie "MyVariables".
frxReport1.Variables[' ' + 'MyVariables'] := Null;
Alle Varuiablen, die Du dann hinzufügst, sind automatisch in dieser Kategorie.
Delphi-Quellcode:
/Edit
frxReport1.Variables['MyVariable1'] := 10;
Hatte da ein Bisschen was verwechselt und korrigert. |
Re: Fastreport Variablen übergeben und anzeigen
Jupp, habe ich auch gerade gesehen. Ich habe das soweit korrigiert. Leider komme ich im Report immer noch nicht an die Variable... Müsste man für das Beispiel folgendes in das Memo im Report schreiben?
[MyVariables."MyVariable1"] |
Re: Fastreport Variablen übergeben und anzeigen
Also ich habe mir eine Variable "Startdate" in "Kategorie1" erstellt.
Im Fastreport (Version 4) mach ich nun folgendes: - Memo hinzufügen - Doppelklick auf das Memo - Reiter "Text" auswählen - Toolbutton "ABC" drücken - im neuen Fenster Reiter "Variablen" auswählen - Kategorie1 öffnen - Startdate doppelklicken und es wird in das untere Feld "Ausdruck" übernommen - OK und es wird ins Memo-Feld übernommen - nochmal OK und es steht im Report im Memo drin. Dort steht "[Startdate]" - <F9> drücken, um den Report anzuschauen Ich habe dies extra für Dummies geschrieben, weil Du ja Probleme damit hattest. |
Re: Fastreport Variablen übergeben und anzeigen
Mmh, genau so habe ich es auch probiert. Nur wenn ich die Variable im Code erzeuge taucht Sie im FastReport Designer nicht unter "Variablen" auf. Daher kann ich sie auch nicht auswählen...
Schreibe ich den Text per Hand in das Memo klappt es auch nicht. "Undeclared Identifier: "FromHour" Ist ja echt zum verrückt werden :( |
Re: Fastreport Variablen übergeben und anzeigen
Zitat:
Wie lädst Du die Reports? |
Re: Fastreport Variablen übergeben und anzeigen
Ich lade die "Activity.fr3" mit der Function die im ersten Post steht. Angezeigt wird er dann mit frxActivityReport.ShowReport;
Ich habe gerade mal als Variable einen integer wert übergeben, das geht! Sobald ich einen String angebe funktioniert es nicht mehr. Kann doch nicht sein das ich keine Strings übergeben kann. Wie soll ich dann Zeiutraumauswertung Von - Bis machen?? Was meinst du mit einem kompletten Build? Das Project wird jedesmal komplett neu compiliert. |
Re: Fastreport Variablen übergeben und anzeigen
Also ich übergebe Boolean, String, Integer ohne Probleme.
Mit "Build" meine ich "Projekt erzeugen" und nicht "Projekt kompilieren". Machst Du eigentlich vor dem ShowReport auch ein PrepareReport? Ich seh das grad nicht bei Dir im Code. Und versuch mal anstatt ShowReport das ShowPreparedReport. |
Re: Fastreport Variablen übergeben und anzeigen
Die Änderungen habe ich vorgenommen. Leider ohne Erfolg. Das scheint mir irgend ein komischer Bug zu sein :( Trotzdem schon mal vielen Dank für deine Hilfe :)
Ich habe den Wert der Variable mal im OnGetValue Event der frxReportKomponente "abgefangen". Da steht nichts drin... Wenn ich hier das Value ändere wird er im Report angezeigt. Das ist aber nicht der schönste Weg die Variablen in den Report zu bekommen :lol:
Delphi-Quellcode:
procedure TDM_Report.frxActivityReportGetValue(const VarName: string;
var Value: Variant); begin if CompareText(VarName, 'FromDate') = 0 then begin showmessage(Value); Value := 'test'; end; end; //Nachtrag Habs jetzt endlich gelöst :???: Ganz einfach wenn man die richtigen Dokumente gefunden hat. Aber auf diese Syntax muss man auch erst mal kommen. Zitat:
|
Re: Fastreport Variablen übergeben und anzeigen
Stimmt.
Jetzt wo ich es gelesen habe und nochmal in den Code geschaut habe. Ich übergebe Strings auch mit den komischen einfachen Anführungszeichen.
Delphi-Quellcode:
FrxStandardReport.Variables['LicenseCompany'] := '''' + Engine.LicenseCompany + '''';
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz