当BusinessObject数据源新数据发生更改时,StimulSoft报告无法正确显示

时间:2012-10-08 09:56:49

标签: c# linq-to-sql business-objects bindingsource stimulsoft

我正在将.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。

我错过了什么吗? 有人可以帮忙吗?

...谢谢

2 个答案:

答案 0 :(得分:2)

请尝试使用RegData()方法RegReportDataSources()。 另请在显示报告之前尝试使用Render()方法。

答案 1 :(得分:0)

在RegReportDataSources:

之前添加它
stiReport1.BusinessObjectsStore.Clear();