AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

FastReport - Datenbankanbindung

Ein Thema von Cogito · begonnen am 29. Apr 2010 · letzter Beitrag vom 3. Mai 2010
Antwort Antwort
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#1

FastReport - Datenbankanbindung

  Alt 29. Apr 2010, 15:09
Hallo zusammen,

ich bin gerade dabei FastReports zu testen um muss gestehen dass mir die Datenbankanbindung Probleme bereitet. Vielleicht könnt ihr mir helfen.
1. Ich nutze in meinem Programm bereits Datenbankverbindungen, die der Benutzer anlegen und speichern kann (unter anderem auch für selbst zu erstellende Abfragen usw...). Kann ich eine vom Benutzer eingerichtete DB-Verbindung nun sozusagen auch an FastReport durchreichen, damit der Benutzer diese dort nicht mehr extra machen braucht und sofort mit dem Aufbau eines Reports beginnen kann? (Ich verwende übrigens die Unidac Komponenten von devart)

2. Werden Datenbankverbindungen und die verwendeten Abfragen in einem Report für einen späteren Ausdruck gespeichert?
  Mit Zitat antworten Zitat
Bebe

Registriert seit: 3. Apr 2005
Ort: Berlin
104 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: FastReport - Datenbankanbindung

  Alt 29. Apr 2010, 20:27
zu 1. Ja
zu 2. Ja (QueryBuilder), jedoch sowie ich es gemacht habe nicht!

Ich habe dir mal ein kleines Projekt gebastelt. Da ich aber die Unidac Komponente nicht habe, dachte ich mir, es geht auch mit der VirtualTable Komponente.

hier ein kleiner Code Ausschnitt (Ausschnitt ist gut, das ist alles ... )
Delphi-Quellcode:
procedure TfrmReporting.btnGruppeClick(Sender: TObject);
begin
  dsGlobal.DataSet := tblGruppe; // mit fester Datenverbindung (tblGruppe)
  frxReport1.PrepareReport(True); // leere den Report
  frxReport1.DesignReport; // damit öffnest du den Designer / im Report werden die Felder von tblGruppe angezeigt
end;

procedure TfrmReporting.btnMitarbeiterClick(Sender: TObject);
begin
  dsGlobal.DataSet := tblMitarbeiter; // mit fester Datenverbindung (tblMitarbeiter)
  frxReport1.PrepareReport(True); // leere den Report
  frxReport1.DesignReport; // damit öffnest du den Designer / im Report werden die Felder von tblMitarbeiter angezeigt
end;
noch mal zu 2. im Report wird natürlich die Verbindung gespeichert, aber hier tausche ich ja das Dataset aus, was der Report ja nicht speichert. Dadurch musst du zu jedem Report die angezapfte Tabelle oder Abfrage irgendwo zusätzlich speichern.

Meine Verknüpfung ist ja : Dataset > Datasource > frxDBDataset > frxReport

Gespeichert wird im Report nur die Verbindung frxDBDataset > frxReport

Gruß
Matze
Angehängte Dateien
Dateityp: zip test_105.zip (10,0 KB, 23x aufgerufen)
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#3

Re: FastReport - Datenbankanbindung

  Alt 30. Apr 2010, 09:03
Vielen Dank erstmal für die ausführliche Antwort!
Wie könnte ich denn eine Verbindung zwischen dem Report und der verwendeten Datenquelle herstellen? Nach dem Aufruf des Designers weiss ich ja nicht mal ob der Anwender den Report überhaupt abspeichert.
  Mit Zitat antworten Zitat
Bebe

Registriert seit: 3. Apr 2005
Ort: Berlin
104 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

Re: FastReport - Datenbankanbindung

  Alt 30. Apr 2010, 17:54
In einer INI Datei vielleicht oder aber alle Details in einer Tabelle ablegen. Bei der INI Datei eine pro Report oder so.

Da du ja im Programm den Report erstellen willst, weißt du ja wann der Designer beendet wird, dann kannst du dir alle Details aus dem Report entnehmen und abspeichern.
  Mit Zitat antworten Zitat
EarlyBird

Registriert seit: 29. Mär 2007
235 Beiträge
 
#5

Re: FastReport - Datenbankanbindung

  Alt 30. Apr 2010, 20:09
Hallo Bebe,
bei den SDAC Komponenten (auch von DEVART) ist im Demoordner eine FastReport Komponente mit der man Tables und Querys direkt im Report einbinden kann.
Das funktioniert super. Ich mache einen großteil meiner Reports so.
Bei mir ist die Komponente im Ordner C:\Programme\Devart\Sdac\Demos\Win32\ThirdParty\Fa stReport\FR4
Dort findest Du auch eine gute Readme.txt Datei.
So weit ich weis ist die Komponente bei UNIDAC auch dabei.

Gruß EarlyBird
  Mit Zitat antworten Zitat
Bebe

Registriert seit: 3. Apr 2005
Ort: Berlin
104 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: FastReport - Datenbankanbindung

  Alt 30. Apr 2010, 20:26
Hallo EarlyBird,

danke für den Tipp, jedoch habe ich ihm auch diesen Vorschlag schon unterbreitet.

Siehe Datenmodell

Mir ging es in um die starre Vorgabe eine Datenquelle, natürlich ist die Vorgehensweise direkt mit der DevArt Komponente besser, da es die Datenbverbindung mit abspeichert.

Gruß
Matze
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#7

Re: FastReport - Datenbankanbindung

  Alt 1. Mai 2010, 09:58
Zitat von Bebe:
In einer INI Datei vielleicht oder aber alle Details in einer Tabelle ablegen. Bei der INI Datei eine pro Report oder so.

Da du ja im Programm den Report erstellen willst, weißt du ja wann der Designer beendet wird, dann kannst du dir alle Details aus dem Report entnehmen und abspeichern.
Kannst Du mir vielleicht mal ein Beispiel geben, wie ich nach dem Schliessen des Report-Designers Details über den erstellten Report rauskriegen kann?
  Mit Zitat antworten Zitat
Bebe

Registriert seit: 3. Apr 2005
Ort: Berlin
104 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: FastReport - Datenbankanbindung

  Alt 1. Mai 2010, 10:37
zum Beispiel nach dem Befehl frxReport1.DesignReport den Zustand abfragen per frxReport1.Modified.

Delphi-Quellcode:
  dsGlobal.DataSet := tblMitarbeiter;
  frxReport1.PrepareReport(True); // damit löscht du, falls vorhanden, alte Report in der Komponente
  frxReport1.DesignReport;
  if frxReport1.Modified then
    ShowMessage('Report wurde geändert');
  Mit Zitat antworten Zitat
Cogito

Registriert seit: 12. Jun 2008
280 Beiträge
 
#9

Re: FastReport - Datenbankanbindung

  Alt 3. Mai 2010, 11:28
Vielen Dank, das funktioniert erst mal ganz gut.
Jetzt hab ich das Problem, das ich einen Report öffnen möchte (per Quellcode, nicht mit dem Dialog). Dazu mach ich folgendes:

Code:
frxReport.LoadFromFile(Dateiname);
frxReport.PrepareReport(True);
frxReport.DesignReport;
Doch dabei öffnet er mir nicht den Report (den ich kurz zuvor erzeugt habe), sondern bringt mir eine Schutzverletzung beim schliessen der Anwendung. Ich habe den Designer in mein Programm eingebettet, analog dem Demoprogramm.
Mach ich hier was falsch?

Edit: Hab den Fehler gerade selber gefunden, ich muss natürlich mit dem Referenzobjekt arbeiten!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:25 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