2013-07-31 2 views
0

다음 코드를 사용하여 단추 클릭 이벤트에서 보고서 뷰어 컨트롤에 표시된 보고서를 변경하고 있습니다.보고서 뷰어 컨트롤에서 표시 보고서를 동적으로 업데이트 할 수 없습니다.

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(); 
     } 

    } 
관련 문제