我正在将.net的StimulSoft报告作为我的第三方报告来创建我的BusinessObject报告。
这是我的客户类
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并显示报告时,报告会显示旧记录。
请注意,报告由报告向导创建,并使用customersBindingSource作为从DataSource窗口拖放的DataSource。
我错过了什么吗? 有人可以帮忙吗?
...谢谢
答案 0 :(得分:2)
请尝试使用RegData()
方法RegReportDataSources()
。
另请在显示报告之前尝试使用Render()
方法。
答案 1 :(得分:0)
在RegReportDataSources:
之前添加它stiReport1.BusinessObjectsStore.Clear();