1

BusinessObject レポートを作成するためのサードパーティ レポートとして、StimulSoft Report for .net を使用しています。

ここに私の顧客クラスがあります

class CustomerSet
    {
        public string CustomerID { get; set; }
        public string CompanyName { get; set; }
        public string ContactName { get; set; }
        public string ContactTitle { get; set; }
    }

LINQ to SQL は私の DataAccess コンポーネントです

すべての顧客 ID をリストボックスにロードする

 private void CustomerReport_Load(object sender, EventArgs e)
        {
            var idQuery = from c in db.Customers
                         select c.CustomerID;

            listBox1.DataSource = idQuery;
        }

ユーザーがリストボックスから ID を選択して [表示] ボタンをクリックすると、その ID に基づいて顧客情報が照会され、レポートが生成されます。

     private void btnShow_Click(object sender, EventArgs e)
            {
                try
                {
                    var custQuery = from c in db.Customers
                                      where c.CustomerID == listBox1.SelectedValue.ToString()
                                      select new CustomerSet { 
                                       CustomerID=c.CustomerID,
                                       CompanyName=c.CompanyName,
                                       ContactName=c.ContactName,
                                       ContactTitle=c.ContactTitle
                                      };
                    customersBindingSource.Clear();
                    customersBindingSource.Insert(0,custQury.FirstOrDefault());

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

最初は問題ありませんが、ユーザーがレポートを閉じて新しい ID を選択してレポートを表示すると、レポートには古いレコードが表示されます。

レポートはレポート ウィザードによって作成され、DataSource ウィンドウからドラッグ アンド ドロップする DataSource として customersBindingSource を使用することに注意してください。

私は何か見落としてますか?誰でも助けることができますか?

ありがとう...

4

2 に答える 2

2

RegData()代わりにメソッドを使用してみてくださいRegReportDataSources()。また、Render()ショーレポートの前にメソッドを使用してみてください。

于 2012-10-17T11:37:34.273 に答える
0

これを RegReportDataSources の前に追加します。

stiReport1.BusinessObjectsStore.Clear();
于 2013-08-04T11:08:46.170 に答える