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);
}
}
これはうまくいった。助けてくれてありがとう。非常に高く評価。私はちょうどこれを追加:this.ReportViewer.Reset();私の "新しいファイルを生成する"コードと私のSQL接続コードの前に。これは完璧なおかげです。 J –
リモートレポートでも同じ問題がありました。この回答はまだ適用されています。ありがとう! – LOAS