ReportViewer mit Messinstrument an Objekt-Datenquellen  
Frank Dzaebel, erstellt am: 19.06.2010, zuletzt geändert:  19.06.2010
Kategorie: Berichtswesen, .NET-Version: 4, [Download]

Schon mit Standard-Controls aus Visual Studio lassen sich im Berichtswesen sehr gute Ergebnisse erzeilen. Oft noch unbekannt sind die vielen zusätzlichen Komponenten die über die Berichte zur Verfügung stehen. Auch verschiedene Designer-Hosts sind nutzbar. "ReportViewer", "Microsoft SQL Server 2008 R2 Report Builder 3.0" oder "Business Intelligence Development Studio" und "SQL Server Reporting Services" können zusammen oder separat, im Web oder lokal genutzt werden. Obwohl der ReportViewer meistens zur Darstellung größerer Datenmengen benutzt wird, hier ein Beispiel für den Gebrauch als Pseudo-Steuerelement für ein Messgerät (Gauge), das an einen Wert in der Businesslogik gebunden ist (hier die Sekunden der aktuellen Zeit) :

Eine Messgeräte-Komponente, dargestellt durch einen ReportViewer, gebunden an die Sekunden der aktuellen Zeit. Es refresht sich alle 5 Sekunden.

  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
      datenBindingSource.DataSource = new Daten() { Sekunden = DateTime.Now.Second };
      reportViewer1.LocalReport.DataSources["DataSet1"].Value = datenBindingSource;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
      this.reportViewer1.RefreshReport();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
      datenBindingSource.DataSource = new Daten() { Sekunden = DateTime.Now.Second };
      this.reportViewer1.RefreshReport();
    }
  }

  public class Daten
  {
    public int Sekunden { get; set; }
  }