So konfigurieren Sie einen Bericht mit Business Objects im Code und im FastReport .NET Designer

2026-06-22

So konfigurieren Sie einen Bericht mit Business Objects im Code und im FastReport .NET Designer

FastReport .NET bietet zahlreiche Möglichkeiten für den Datenzugriff und die Datenverarbeitung, darunter Datenbanken, DataSet, JSON sowie Business Objects (gewöhnliche C#-Klassen in Ihrer Anwendung).

In diesem Artikel wird anhand eines praxisnahen Beispiels gezeigt, wie Sie eine .frx-Berichtsvorlage erstellen und verwenden, die mit hierarchischen Business Objects (Kategorie → Produkte) arbeitet.

 


 

Warum Business Objects als Datenquelle verwenden?

Business Objects bieten gegenüber herkömmlichen Datenquellen eine Reihe von Vorteilen:

  • Unterstützung komplexer Objektmodelle – Verschachtelte Sammlungen werden nahtlos unterstützt, wodurch sich Business Objects hervorragend für Master-Detail-Berichte eignen (dies wird später in diesem Artikel demonstriert).
  • Unabhängigkeit von Datenbanken – Berichte können auch ohne direkte Verbindung zu einer Datenbank erstellt werden.
  • Einfache Wartung – Änderungen am Datenmodell erfordern in der Regel nur wenige oder gar keine Anpassungen an bestehenden Berichten.
  • Hohe Leistung – Die Daten werden direkt aus den Anwendungsobjekten serialisiert.
  • Flexibilität – Geeignet für WinForms, WPF, ASP.NET Core, Microservices und andere .NET-Anwendungen.

 


 

Erstellen der Business Objects

1. Erstellen Sie die Modellklassen

Installieren Sie zunächst das NuGet-Paket FastReport.Net.Demo (oder die lizenzierte Version von FastReport.Net von unserem privaten NuGet-Server). Erstellen Sie anschließend die folgenden Modellklassen:

public class Category
 {
 public string Name { get; set; } = string.Empty;
 public string Description { get; set; } = string.Empty;
 public List<Product> Products { get; set; } = new List<Product>();
 
 public Category() { }
 
 public Category(string name, string description)
 {
 Name = name;
 Description = description;
 }
 }
 
 public class Product
 {
 public string Name { get; set; } = string.Empty;
 public decimal UnitPrice { get; set; }
 
 public Product() { }
 
 public Product(string name, decimal unitPrice)
 {
 Name = name;
 UnitPrice = unitPrice;
 }
 }

 

2. Füllen der Business Objects mit Daten

Implementieren Sie anschließend eine einfache Methode zum Befüllen der Business Objects mit Beispieldaten:

static private void CreateBusinessObject()
{
 FBusinessObject.Clear();
 
 Category category = new Category("Beverages", "Soft drinks, coffees, teas, beers");
 category.Products.Add(new Product("Chai", 18m));
 category.Products.Add(new Product("Chang", 19m));
 category.Products.Add(new Product("Ipoh coffee", 46m));
 FBusinessObject.Add(category);
 
 category = new Category("Confections", "Desserts, candies, and sweet breads");
 category.Products.Add(new Product("Chocolade", 12.75m));
 category.Products.Add(new Product("Scottish Longbreads", 12.5m));
 category.Products.Add(new Product("Tarte au sucre", 49.3m));
 FBusinessObject.Add(category);
 
 category = new Category("Seafood", "Seaweed and fish");
 category.Products.Add(new Product("Boston Crab Meat", 18.4m));
 category.Products.Add(new Product("Red caviar", 15m));
 FBusinessObject.Add(category);
}

 

3. Erstellen des Berichts

Um einen Bericht auf Grundlage der Datenquelle Categories BusinessObject zu erstellen, verwenden Sie den folgenden Code:

 [STAThread]
 static void Main(string[] args)
 {
 Report report = new Report();
 CreateBusinessObject();
 report.RegisterData(FBusinessObject, "Categories BusinessObject");
 report.Design();
 }

Wichtig: Rufen Sie RegisterData nach dem Laden des Berichts (report.Load) und vor dem Aufruf von report.Prepare() auf.

Nach dem Start des Report-Designers wählen Sie die Datenquelle über "Data → Choose Report Data".

Auswahl von Daten für einen Bericht im FastReport .NET-Designer

 

Erstellen Sie nun einen einfachen Master-Detail-Bericht oder verwenden Sie eine der Beispielvorlagen, die in den FastReport-Demoprojekten enthalten sind.

Master-Detail-Bericht

Sobald der Bericht erstellt wurde, können Sie ihn im Vorschaumodus (Preview) ausführen, um das Ergebnis zu überprüfen.

Vorschau eines fertigen Master-Detail-Berichts

 

4. Anzeigen des Berichts in einer Konsolenanwendung

Nachdem die Berichtsvorlage erstellt wurde, können Sie sie mit dem folgenden Code in einer Konsolenanwendung anzeigen:

[STAThread]
 static void Main(string[] args)
 {
 Report report = new Report();
 report.Load(@"Business Objects.frx");
 CreateBusinessObject();
 report.RegisterData(FBusinessObject, "Categories BusinessObject");
 report.Prepare();
 report.Show();
 report.Dispose();
 }

 


 

Vollständiges WinForms-Anwendungsbeispiel

public partial class Form1 : Form
 {
 static private List<Category> FBusinessObject = new List<Category>();
 
 public Form1()
 {
 InitializeComponent();
 CreateBusinessObject();
 }
 
 private void CreateBusinessObject()
 {
 FBusinessObject.Clear();
 
 Category category = new Category("Beverages", "Soft drinks, coffees, teas, beers");
 category.Products.Add(new Product("Chai", 18m));
 category.Products.Add(new Product("Chang", 19m));
 category.Products.Add(new Product("Ipoh coffee", 46m));
 FBusinessObject.Add(category);
 
 category = new Category("Confections", "Desserts, candies, and sweet breads");
 category.Products.Add(new Product("Chocolade", 12.75m));
 category.Products.Add(new Product("Scottish Longbreads", 12.5m));
 category.Products.Add(new Product("Tarte au sucre", 49.3m));
 FBusinessObject.Add(category);
 
 category = new Category("Seafood", "Seaweed and fish");
 category.Products.Add(new Product("Boston Crab Meat", 18.4m));
 category.Products.Add(new Product("Red caviar", 15m));
 FBusinessObject.Add(category);
 }
 
 private void btnCreateNew_Click(object sender, EventArgs e)
 {
 // create report instance
 Report report = new Report();
 
 // register the business object
 report.RegisterData(FBusinessObject, "Categories BusinessObject");
 
 // design the report
 report.Design();
 
 // free resources used by report
 report.Dispose();
 }
 
 private void btnRunExisting_Click(object sender, EventArgs e)
 {
 // create report instance
 Report report = new Report();
 
 // load the existing report
 report.Load(@"..\..\Business Objects.frx");
 
 // register the business object
 report.RegisterData(FBusinessObject, "Categories BusinessObject");
 
 // run the report
 report.Show();
 
 // free resources used by report
 report.Dispose();
 }
 }
 
 
 public class Category
 {
 public string Name { get; set; } = string.Empty;
 public string Description { get; set; } = string.Empty;
 public List<Product> Products { get; set; } = new List<Product>();
 
 public Category() { }
 
 public Category(string name, string description)
 {
 Name = name;
 Description = description;
 }
 }
 
 public class Product
 {
 public string Name { get; set; } = string.Empty;
 public decimal UnitPrice { get; set; }
 
 public Product() { }
 
 public Product(string name, decimal unitPrice)
 {
 Name = name;
 UnitPrice = unitPrice;
 }
 }

 


 

Fazit

Business Objects sind eine der modernsten und komfortabelsten Möglichkeiten, mit Daten in FastReport .NET zu arbeiten. Sie ermöglichen es, die Berichtserstellung sauber und wartbar in die Architektur Ihrer Anwendung zu integrieren, ohne unnötige Komplexität in die Codebasis einzubringen.

Dieser Ansatz eignet sich besonders für mittelgroße und große Projekte, in denen eine klare Trennung der Verantwortlichkeiten, Wartbarkeit und eine schnelle Entwicklung von Berichten entscheidend sind.

Durch die Verwendung von Business Objects erhalten Sie maximale Flexibilität und volle Kontrolle darüber, wie Daten in Ihre Berichte gelangen, während Ihre Reporting-Schicht eng mit dem Domänenmodell Ihrer Anwendung verbunden bleibt.

.NET FastReport Data Source Designer C# Preview
21. April 2026

Verwendung von Wasserzeichen in FastReport VCL

Der Artikel hat die Funktionalität zum Hinzufügen von Wasserzeichen in FastReport VCL ausführlich behandelt – sowohl über die visuelle Oberfläche als auch programmgesteuert mit Delphi-Code und in Berichtsskripten.
8. April 2026

Neue Möglichkeiten zur Arbeit mit Bands im FastReport .NET-Designer

In der Version 2026.2 von FastReport .NET bietet nun die Möglichkeit, die Band-Reihenfolge direkt im Designer per Drag & Drop mit der Maus zu ändern.
6. April 2026

Neue QR-Code-Zeichnungsmodi in FastReport .NET konfigurieren

Betrachten Sie in diesem Artikel, wie Sie die Standard-QR-Code-Module in FastReport .NET durch dekorative Formen ersetzen können: Kreise, Sterne, Sechsecke und andere.

© 1998-2026 Fast Reports Inc.