2017-02-27 41 views
0

默認情況下,我有一個帶有數據源的rpx文件。我想加載它並檢查用戶是否想要使用不同的數據源。我已經覆蓋了SectionReport對象的數據源,並在之前執行讀取器以將其發送給loadlayout方法。我是否需要使用文本框來映射字段,或者我是否缺少更改數據源的內容。如何覆蓋在c#中的活動報告rpx文件的數據源?

回答

1

如果新數據源具有原始數據源的不同字段(列),那麼您需要在報表的Fields集合中添加字段,並將TextBoxes的DataField屬性更改爲新字段以便顯示新的數據。看看在「要使用未綁定的數據源」主題在下面的文檔鏈接:http://arhelp.grapecity.com/webhelp/AR11/index.html#BindReportstoaDataSource.html

編輯: 您可以通過以下方式改變只是報告的數據源的連接字符串:

SectionReport rpt = new SectionReport(); 
XmlTextReader xtr = new XmlTextReader("../../Invoice1.rpx"); 
rpt.LoadLayout(xtr);    

var dataSource = rpt.DataSource as GrapeCity.ActiveReports.Data.OleDBDataSource; 
dataSource.ConnectionString = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source =C:\BILL.mdb; Persist Security Info = False"; 

rpt.Run(); 

viewer1.LoadDocument(rpt); 
+0

其他問題實際上我真正需要的是改變,只是連接字符串可以覆蓋文件的連接字符串。 – UserEsp