Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
ReportViewer Report durch Button-Click aktualisieren, funktioniert nur nach Neustart
MEG
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

ReportViewer Report durch Button-Click aktualisieren, funktioniert nur nach Neustart

beantworten | zitieren | melden

Hallo,

ich möchte in einer WPF-Anwendung Daten einer MS-Access Datenbank als Bericht darstellen.
Die Darstellung funktioniert auch soweit, nur schaffe ich es nicht den Report z.B. durch betätigen eines Buttons zu aktualisieren.
Wenn ich Daten der Datenbank ändere oder neue hinzufüge, zeigt der ReportViewer immer noch dieselben Daten wie zu Beginn. Erst wenn man das Programm neu startet werden die Änderungen im ReportViewer ersichtlich.

Kann mir da vielleicht jemand weiterhelfen?

Das ganze habe ich nach folgendem Muster gemacht:
Exemplarische Vorgehensweise: Verwenden von ReportViewer in einer WPF-Anwendung

<Window x:Class="WpfReportApplication.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:rv="clr-namespace:Microsoft.Reporting.WinForms;assembly=Microsoft.ReportViewer.WinForms" 
        Title="MainWindow" Height="350" Width="525">
    <Grid>
      <WindowsFormsHost>
        <rv:ReportViewer x:Name="_reportViewer"/>
      </WindowsFormsHost>
    </Grid>
</Window>


public MainWindow()
{
    InitializeComponent();
    _reportViewer.Load += ReportViewer_Load;
}

private bool _isReportViewerLoaded;

private void ReportViewer_Load(object sender, EventArgs e)
{
    if (!_isReportViewerLoaded)
    {
        Microsoft.Reporting.WinForms.ReportDataSource reportDataSource1 = new Microsoft.Reporting.WinForms.ReportDataSource();
        AdventureWorks2008R2DataSet dataset = new AdventureWorks2008R2DataSet();

        dataset.BeginInit();

        reportDataSource1.Name = "DataSet1"; //Name of the report dataset in our .RDLC file
        reportDataSource1.Value = dataset.SalesOrderDetail;
        this._reportViewer.LocalReport.DataSources.Add(reportDataSource1);
        this._reportViewer.LocalReport.ReportEmbeddedResource = "<VSProjectName>.Report1.rdlc";

        dataset.EndInit();

        //fill data into adventureWorksDataSet
        AdventureWorks2008R2DataSetTableAdapters.SalesOrderDetailTableAdapter salesOrderDetailTableAdapter = new AdventureWorks2008R2DataSetTableAdapters.SalesOrderDetailTableAdapter();
        salesOrderDetailTableAdapter.ClearBeforeFill = true;
        salesOrderDetailTableAdapter.Fill(dataset.SalesOrderDetail);

        _reportViewer.RefreshReport();

        _isReportViewerLoaded = true;
    }
}
private Nachricht | Beiträge des Benutzers
t0ms3n
myCSharp.de - Member



Dabei seit:
Beiträge: 319

beantworten | zitieren | melden

Wann und wie aktualisiert du den Bericht denn?
private Nachricht | Beiträge des Benutzers
MEG
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

Ich habe es schon geschafft, aber trotzdem vielen Dank.


                connection.Open();
                OleDbDataAdapter rDA = new OleDbDataAdapter("SELECT * FROM [Tabelle1]", connection);
                DataTable rDT = new DataTable();
                rDA.Fill(rDT);
                connection.Close();
                this._reportViewer.Reset();
                this._reportViewer.LocalReport.DataSources.Clear();
                this._reportViewer.LocalReport.ReportPath = @"..\Report1.rdlc"; //Pfad des Reports
                Microsoft.Reporting.WinForms.ReportDataSource rDS = new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", rDT);
                this._reportViewer.LocalReport.DataSources.Add(rDS);
                this._reportViewer.RefreshReport();
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von MEG am .
private Nachricht | Beiträge des Benutzers