Registration der Datenquellen vor die Erstellung des neuen Berichts

Für die Übertragung der Datenquelle in den Bericht braucht man diese Datenquelle zuerst zu registrieren. Weiter soll man im Bericht eine verfügbare Datenquelle aus der Liste wählen und dann die Arbeit beginnen. Es wäre schön, wenn die Datenquelle beim Start des Designers sofort verfügbar wird. Und es wäre auch schöner, wenn diese Datenquelle im Berichtsdesigner schon gewählt wird. Man kann unverzüglich ohne Sorgen um die Daten die Berichtserstellung starten.

Das hilft viele Routine bei der Erstellung von mehreren Berichten vermeiden.

Es ist nicht so schwer, eine Datenquelle zu registrieren und sie automatisch beim Start vom Designer auszuwählen. Das Hauptproblem hier – eine registrierte Datenquelle bei der Erstellung vom neunen Bericht mit Hilfe vom Menü „File“ zu speichern.    

Die Lösung, die ich präsentiere, besteht im Abfangen des Erstellungsprozesses vom neuen Bericht bei der Verwendung vom „File“-Menü.

Also, betrachten wir jetzt ein Beispiel. Erstellen wir eine Anwendung mit Form und eine Taste.

Für die Arbeit brauchen wir Bibliotheken:

1
2
3
4
5
using FastReport;
using FastReport.Utils;
using FastReport.Data;
using FastReport.Design;
using FastReport.Wizards;

Erklären wir eine Datenquelle und erstellen sie:

1
2
3
4
5
6
private DataSet FDataSet;
private void CreateDataSource()
 {
 FDataSet = new DataSet(); 
 FDataSet.ReadXml(Environment.CurrentDirectory + "//nwind.xml");
 }

In diesem Fall wurde eine XML Datenbank von der FastReport .Net Lieferung verwendet.

Erstellen wir eine Methode der Registration einer Datenquelle:

1
2
3
4
5
6
7
8
9
10
 private void RegisterData(Report FReport)
 {
 FReport.RegisterData(FDataSet, "NorthWind");
 
 // activate all data sources by default
 foreach (DataSourceBase source in FReport.Dictionary.DataSources)
 {
 source.Enabled = true;
 }
 }

Hier interessiert uns der Zyklus, der einen Umgang für alle Datenquelle macht. Diese Datenquelle sind im Bericht registriert und der Zyklus aktiviert sie. Auf diese Weise werden diese Datenquelle im Datenfenster sofort verfügbar.

Rufen wir den Eventbearbeiter vom Start des Berichtsdesigners auf:

1
2
3
4
private void DesignerSettings_DesignerLoaded(object sender, EventArgs e)
 {
 (sender as Designer).cmdNew.CustomAction += new EventHandler(cmdNew_CustomAction);
 }

Fügen wir einen Benutzers Eventsbearbeiter für die Erstellung vom neuen Bericht durch das „File“-Menü hinzu.

Jetzt brauchen wir diesen Eventsbearbeiter zu erstellen. Er erstellt einen leeren Bericht mit der schon hinzugefügten Datenquelle: 

1
2
3
4
5
6
7
8
9
10
11
12
void cmdNew_CustomAction(object sender, EventArgs e)
 {
 Designer designer = sender as Designer;
 
 //StandardReportWizard wizard = new StandardReportWizard(); // you can use any wizard form package
 BlankReportWizard wizard = new BlankReportWizard();
 wizard.Run(designer);
 
 RegisterData(designer.Report);
 // refresh data tree view
 designer.SetModified(this, "EditData");
 }

Hier erstellen wir zur Wahl entweder ein Exemplar vom leeren Bericht, oder starten wir den „Designer der Erstellung vom standardisierten Bericht“. Weiter eröffnen wir einen neuen Bericht im Designer. Registrieren wir noch einmal die Datenquelle und erneuen wir die Liste im Datenbaum.

Jetzt schreiben wir einen Eventsbearbeiter für Tastenklick: 

1
2
3
4
5
6
7
8
9
10
 private void button1_Click(object sender, EventArgs e)
 {
 Report FReport = new Report();
 Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded;
 CreateDataSource(); 
 
 // FReport.Load("myreport.frx"); // load report
 RegisterData(FReport); // register data before design
 FReport.Design();
 }

Erstellen wir einen Bericht. Setzen wir unseren selbst gemachten Eventsbearbeiter für Berichtsdownload statt standardisierten. Erstellen wir eine Datenquelle. Jetzt kann man den Bericht herunterladen, aber das man nicht braucht. Nach der Erstellung wird leerer Bericht gemacht. Unverzüglich registrieren wir die Daten vor dem Designers Aufruf.

Jetzt werden die Datentabellen beim Start des Designers im Fenster „Daten“ angezeigt. Auch wird die Datenquelle bei der Erstellung durch Menü „File“ hinzugefügt.

Fast Reports
  • 800-985-8986 (Englisch, die USA)
  • +4930568373928 (Deutsch)
  • +55 19 98147-8148 (Portugiesisch)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314

© 1998-2024 Fast Reports Inc.
Trustpilot