logo
small logo
  • Produkte
  • Shop
  • Support
  • Articles
  • Customer panel Support
    • en
    • pt
    • es
    • de
    • pl
    • JP
    • ZH
  • Home
  • /
  • Articles
  • /
  • Speichern von Berichten FastReport .Net in den Datenlager
  • Die FastReport Familie der Reportgeneratoren - kurze Overview

    23. März 2020

    Reporting – ein wichtiges Bereich, ohne es Aktivitäten im Alltagsleben richtig schwer vorzustellen. Bürokratie ist

    read more
  • Die Events PreviewControl.OnPrint und PreviewControl.OnExport

    1. Oktober 2020

    FastReport 2019.4 bietet eine Möglichkeit, die Events PreviewControl.OnPrint und PreviewControl.OnExport zu steuern, die direkt aufgerufen

    read more
  • Verbindung zu Elasticsearch

    10. November 2021

    FastReport .NET-, Core-, Mono-, OpenSource-Produkte können jetzt eine Verbindung zu Elasticsearch herstellen. Elasticsearch ist ein

    read more
  • Toilettenpapier drucken

    30. März 2020

    Meine Herren, Scherz beiseite! Heute sprechen wir über Toilettenpapier. Dieses unverzichtbare Hygieneprodukt wurde erst im

    read more
  • MS Word versus Open Document Text. Was ist besser?

    19. Oktober 2020

    Wenn wir von Texteditoren sprechen, stellen wir uns die Leuchte sofort als Microsoft Word vor,

    read more

Speichern von Berichten FastReport .Net in den Datenlager

28. Februar 2016

Üblich verwendet man zum Speichern der Berichte einen Platz, aber die Berichte sind in den getrennten Dateien. Wenn die Zahl der Dateien steigt, trifft man bei den Suchen und Strukturierung die Schwierigkeiten. Als ich an dieses Problem dachte, merkte ich eine sehr interessante Eigenschaft des Objekts Report – ReportSourceString. In dieser Eigenschaft speichert man die ganze Berichtsschablone in einer Zeile.

Darauf folgt, dass es eine Möglichkeit gibt, Schablonen des Berichts in beliebigem Datenlager zu speichern. Wir können jetzt nur einen Platz verwenden, um da die Berichten zu speichern...

Jetzt brauchen wir unsere eigene Methoden zu den Speichern und Herunterladen vom Bericht. Also, beginnen wir.

Zuerst erstellen wir einen Datenlager zum Speichern den Berichten. Ich verwendete MS Access.

Die Tabelle hat folgende Struktur.

Feldes Name

Datentyp

id

Zähler

Name

Text

Template

MEMO Feld

Erstellen wir jetzt eine Anwendung WindowsForms. Fügen wir eine Verbindung zu unserem Datenlager hinzu. Auf die Form stellen wir die Taste, DataSet Komponenten, BindingSource und Report.

 

 Wir brauchen auch eine Dialogform, auf der wir den Berichtsnamen bei den Speichern und Herunterladen eingeben:

 

Für Tasten braucht man eine Eigenschaft DialogResult nach den Namen der Tasten bestimmen. Jetzt kommt Programmieren. Verwenden wir folgende Bibliotheken von FastReports:

1
2
3
using FastReport;
using FastReport.Utils;
using FastReport.Design;

 Und erstellen wir jetzt ein Examplar von der Dialogform:

1
public SaveLoadForm form2 = new SaveLoadForm();

 Erstellen wir einen Bearbeiter zum Speichernevent:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
void cmdSave_CustomAction(object sender, EventArgs e)
 
 {
 
 ReportsDataSet.ReportsRow row;
 
 row = reportsDataSet1.Reports.NewReportsRow();
 
 if (form2.ShowDialog() == DialogResult.OK)
 
 {
 
 row.Name = form2.ReportName;
 
 row.Template = report1.ReportResourceString;
 
 this.reportsDataSet1.Reports.Rows.Add(row);
 
 ReportsDataSetTableAdapters.ReportsTableAdapter adapter = new ReportsDataSetTableAdapters.ReportsTableAdapter();
 
 adapter.Update(reportsDataSet1.Reports);
 
 }
 
 }

  Hier erstellen wir neue Zeile in der Berichtstabelle. Weiter starten wir die Dialogform. In der Form wird der Berichtsname angezeigt. Im Feld „Name“ wird der Wert aus Textfeld der Dialogform angesessen. Im Feld „Template“ speichern wir die Berichtsschablone wie ein Text.

Danach speichern wir durch den Adapter die Veränderungen in der Tabelle.

Jetzt erstellen wir einen Bearbeiter zum Herunterladensevent:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void cmdOpen_CustomAction(object sender, EventArgs e)
 
 {
 
 if (form2.ShowDialog() == DialogResult.OK)
 
 {
 
 for (int i = 1; i < reportsDataSet1.Reports.Rows.Count; i++)
 
 if (reportsDataSet1.Reports[i].Name == form2.ReportName)
 
 {
 
 report1.ReportResourceString = reportsDataSet1.Reports[i].Template.ToString();
 
 }
 
 Designer designer = sender as Designer;
 
 
 
 designer.SetModified(this, "EditData");
 
 }
 
 }

 Wir rufen die Dialogform auch auf. Im Zyklus suchen wir nach dem Bericht mit dem Namen, der den gleichen Wert, wie im Textfeld eingegebener Name, hat. Weiter erneuern wir den Designer, um die Änderungen zu sehen.

So, wir haben zwei Bearbeiter geschrieben. Jetzt brauchen wir standardisierte Bearbeiter abzufangen, um durch unsere zu ersetzen.

1
2
3
4
5
6
7
8
9
 private void DesignerSettings_DesignerLoaded(object sender, EventArgs e)
 
 {
 
 (sender as Designer).cmdSaveAs.CustomAction += new EventHandler(cmdSave_CustomAction);
 
 (sender as Designer).cmdOpen.CustomAction += new EventHandler(cmdOpen_CustomAction);
 
 }

 Wie man sieht, wir fangen die Events von den Speichern und Herunterladen des Berichts ab und verwenden unsere wie Ersatzbearbeiter.

Für das Tastendrückevent in der Hauptform fügen wir diesen Code hinzu:

1
2
3
4
5
6
7
8
9
 private void DesignBtn_Click(object sender, EventArgs e)
 
 { 
 
 Config.DesignerSettings.DesignerLoaded += DesignerSettings_DesignerLoaded;
 
 report1.Design(); 
 
 }

 Überschreiben wir den Herunterladenbearbeiter vom Berichtsdesigner.

Auf diese Weise erstellten wir eine Anwendung, die für Speichern und Herunterladen von Berichten einen MS Access Datenlager verwendet. Dank der Berichts Eigenschaft „ReportSourceString“ können Sie das Speichern von Berichten in beliebigem Datenlager, der für Sie bequem ist, organisieren.

about product download buy
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport
Comments
Ильшат Кильдияров
2296 days ago
Отличная идея!

Add comment
logo
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314
  • Shop
  • Download
  • Dokumentation
  • Referenzen
  • Informationen zur Deinstallation unserer Produkte
  • Ticket system
  • FAQ
  • Tutorial Video
  • Forum
  • Articles
  • Unsere Nachrichten
  • Presse über uns
  • Partner
  • Außergewöhnliche Lizenzierung
  • Kontakte

© 1998-2022 by Fast Reports Inc.

  • Datenschutz