2012-10-08 64 views
1

我正在將.net的StimulSoft報表作爲第三方報表創建我的BusinessObject報表。當BusinessObject DataSource新數據已更改時,StimulSoft報表不能正確顯示

這裏是我的客戶類

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是我的數據訪問組件

加載所有客戶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

請儘量使用RegData()方法,而不是RegReportDataSources()。 也請在演出報告前嘗試使用Render()方法。

+0

我已經嘗試了所有這些,但仍是同樣的結果。 – sovantha

0

RegReportDataSources前補充一點:

stiReport1.BusinessObjectsStore.Clear(); 
相關問題