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 を使用することに注意してください。
私は何か見落としてますか?誰でも助けることができますか?
ありがとう...