2013-07-31 5 views
0

Я использую следующий код для изменения отчетов, отображаемых в элементе управления просмотра отчетов, в событии Button click.Невозможно динамически обновлять отчет отображения в диспетчере просмотра отчетов

private void ReinitializeViewer(string tsReport) 
     { 
      ReportDataSource ReportDataSourceX = new ReportDataSource(); 
      this.PurchaseReprotViewer.Reset(); 
      this.PurchaseReprotViewer.LocalReport.ReportEmbeddedResource = tsReport; 
      if (tsReport.Contains("Rpt_PurchaseInvoice.rdlc")) 
      { 
       this.purchaseTableAdapter.Fill(this.gmsDataSet.purchase); 
       ReportDataSourceX.Name = "PurchaseInvoiceDataSet"; 
       ReportDataSourceX.Value = this.gmsDataSet.Tables["purchase"]; 
      } 
      else 
      { 
       ReportDataSourceX.Name = "DataSet1"; 

       // ReportDataSourceX.Value = Me.MyBindingSource1 
      } 

      this.PurchaseReprotViewer.LocalReport.DataSources.Add(ReportDataSourceX); 
      //this.purchaseTableAdapter.Fill(this.gmsDataSet.purchase); 
      this.PurchaseReprotViewer.RefreshReport(); 
     } 

     private void Cmd_PurchaseInvoices_Click(object sender, EventArgs e) 
     { 
      ReinitializeViewer("Rpt_PurchaseInvoice.rdlc"); 
     } 

Но я получаю странную ошибку в выходе.

enter image description here

Я не в состоянии определить, что происходит не так в коде выше. Любая помощь приветствуется. Заранее спасибо.

+0

Это может быть связанно с порядком, в котором событие обожженных, когда веб-страница aspx.NET является создание и нагруженным, кнопка клик, как правило, происходит довольно поздно цикл (при догадках). Управление отчетами может жаловаться на отсутствие определения, потому что эта проверка произошла до того, как событие OnClick имеет возможность настроить его. – Phill

ответ

0

Нашел ответ сам.

После код работали для меня:

private void ReinitializeViewer(string tsReport) 
{ 
     ReportDataSource ReportDataSourceX = new ReportDataSource(); 
     this.PurchaseReprotViewer.Reset(); 

     if (tsReport.Contains("Rpt_PurchaseInvoice.rdlc")) 
     { 
      ReportDataSourceX.Name = "PurchaseInvoiceDataSet"; 
      ReportDataSourceX.Value = this.purchaseBindingSource; 
      this.PurchaseReprotViewer.LocalReport.DataSources.Add(ReportDataSourceX); 
      this.PurchaseReprotViewer.LocalReport.ReportEmbeddedResource = tsReport; 
      this.PurchaseReprotViewer.RefreshReport(); 
     } 

    } 
Смежные вопросы