1

WPF を使用して Crystal Report ビューアーを生成していたところ、レポート ビューアーにデータを読み込むことができました。しかし、レポートを動的に更新するイベントを作成しようとしたときに、データを更新できませんでした。

基本的に私が行ったことは、MSSQL Server に接続するデータセットを作成することですここに画像の説明を入力

次に、Crystal Report ファイルを生成します。ここに画像の説明を入力

次に、MainWindow の Crystal レポート ビューアにデータをインポートしようとしています。コードは次のとおりです。

public partial class MainWindow: Window
{
   DataSet1TableAdapters.BordierSheetTableAdapter TA = new      DataSet1TableAdapters.BordierSheetTableAdapter();
     ReportDocument reportDoc = new ReportDocument();
  public MainWindow()
    {
        InitializeComponent();
        Data_Binding();
    }
  public void button2_Click(object sender, RoutedEventArgs e) 
    {
       reportDoc.Refresh();
       crystalReportsViewer1.ViewerCore.RefreshReport();
    }
  void Data_Binding()
     {

         DataSet empDataSet = new DataSet();

         using (SqlConnection conn = new SqlConnection())
         {
             conn.ConnectionString = "Data Source=YATONGHOU\\SQLEXPRESS;Initial Catalog=messagedb;Integrated Security=True";
             conn.Open();


             string sqlStr = "select * from BordierSheet";
             SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlStr,conn);

             dataAdapter.Fill(empDataSet, "BordierSheet");
         }

         string reportDataSource = @"C:\\Users\\yatong\\Work\\LogAnalytics\\BordierSheetReport\\BordierSheetReport\\CrystalReport1.rpt";

         reportDoc.Load(reportDataSource);
         reportDoc.SetDataSource(empDataSet);

         this.crystalReportsViewer1.ViewerCore.ReportSource = reportDoc;

     }
}

データベースを更新してからウィンドウのボタンをクリックすると (button2_Click(object sender, RoutedEventArgs e) 関数がトリガーされます)、データは更新されませんでした。誰でもこれで私を助けてくれますか?どうもありがとうございました。

4

4 に答える 4

3

これを試して:

reportDoc.Load(reportDataSource);
reportDoc.SetDataSource(empDataSet);
this.crystalReportsViewer1.ViewerCore.ReportSource = reportDoc;
crystalReportsViewer1.RefreshReport();
于 2015-04-11T06:08:14.620 に答える
2

Have you tried doing :

reportDoc.Refresh() 

after doing the data load?

于 2012-07-26T20:11:34.317 に答える
2

これを試してください..これは機能しています!

Crystal Report Design > File > Save Data with Report のチェックを外します。

それで、もう一度保存します..動作します。

于 2015-05-22T04:36:50.223 に答える
0

次のように、データソースを削除して再度追加します。

    if ( reportViewer1.LocalReport.DataSources.Count > 0)
        reportViewer1.LocalReport.DataSources.RemoveAt(0);

  reportViewer1.LocalReport.DataSources.Add(new ReportDataSource()
{
            Name = "ds",
            Value = MyDataSource
   });
于 2015-05-21T14:38:43.043 に答える