2009-08-28 6 views
5

VS 2008を使用してC#プログラムを作成しました。このプログラムは、組み込みのレポートビューアを使用し、レポートをローカルで処理します。新しいRDLCファイルに基づいてレポートビューアを再読み込みして更新する

レポートを表示しているときに、現在のrdlcファイルを新しいレポートファイルに置き換えて、レポートビューアを含むレポートフォームを閉じずにレポートを更新したいとします。

ファイルが正しく生成されていることを確認しました。レポートビューアでフォームを閉じて開いたら、新しいファイル情報が表示されます。親フォームを閉じずにレポートビューアを再読み込みする方法はわかりません。

以下は私がすでに試したものです。エラーメッセージは表示されません。レポートはリフレッシュされているように見えますが、私がすでに見ていたことがわかります。新しいRDLCファイルが読み込まれません。

private void BtnRefreshRpt_Click(object sender, EventArgs e) 
    { 

     try 
     { 

      GenerateNewRDLC GN = new GenerateNewRDLC(); 
      GN.generateFile(); /*this part definitely works*/ 


      SqlConnection conReport = new SqlConnection  (ConfigurationManager.ConnectionStrings["Connection String Info"].ConnectionString); 
      SqlCommand cmdReport = new SqlCommand(); 
      SqlDataReader drReport; 
      DataSet dsReport = new AdvEdgeDataSet(); 

      conReport.Open(); 

      cmdReport.CommandType = CommandType.Text; 
      cmdReport.Connection = conReport; 
      cmdReport.CommandText = strRptCriteria; 

      drReport = cmdReport.ExecuteReader(); 

      dsReport.Tables[0].Load(drReport); 

      drReport.Close(); 
      conReport.Close(); 

      reportViewer1.LocalReport.ReportPath = strRptResource.ToString(); 


      ReportDataSource rds = new ReportDataSource(); 
      rds.Name = strRptDataSource; 
      rds.Value = dsReport.Tables[0]; 
      reportViewer1.LocalReport.DataSources.Add(rds); 
      reportViewer1.RefreshReport(); 
      reportViewer1.SetDisplayMode(DisplayMode.PrintLayout); 

      //this.reportViewer1.RefreshReport(); 

     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

答えて

10

新しいレポートファイルを読み込む前に、ReportViewer.Reset()を呼び出してみてください。

現在、私はReportViewerコントロールでこれを正確に実行していますが、ソースコードは正常に動作しています。リセットが機能しない場合、私は月曜日の朝に私のコードをここに掲載します。それは間違いなく行うことができます。

+0

これはうまくいった。助けてくれてありがとう。非常に高く評価。私はちょうどこれを追加:this.ReportViewer.Reset();私の "新しいファイルを生成する"コードと私のSQL接続コードの前に。これは完璧なおかげです。 J –

+0

リモートレポートでも同じ問題がありました。この回答はまだ適用されています。ありがとう! – LOAS

関連する問題