2014-01-14 85 views
0

我想補充報告運行能力,我的軟件,並已決定去與RDL和當地的報表查看器(的WinForms)嵌入數據報告

我一直在閱讀一些好的密技(MSDN和gotreportviewer)和文章和我已成功完成以下操作:

使用XSD(http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition)將最新方案轉換並在運行時生成顯示在報表查看器中的rdl文件。

問題是,因爲我沒有使用服務器,並且在本地模式下沒有任何實際連接,因爲數據集在運行時交付,所以數據不是持久的。

我想以這樣的方式嵌入數據,唯一需要的是RDL(實際上它是RDLC,因爲它處於本地模式)。

我發現有一個XML內嵌方式:

[來源:StockChartsRS2008R2.rdl]

...

<DataSet Name="AWDataSet">  <Query>   <DataSourceName>AdventureWorksOffline</DataSourceName>   <CommandText>&lt;Query&gt; &lt;ElementPath&gt;Root /Stock {@High (Float), @Low (Float), @Close (Float), @Open(Float), @StockPriceDate(Date)} &lt;/ElementPath&gt; &lt;XmlData&gt; &lt;Root&gt; &lt;Stock High="30.4113833868661" Low="29.9705661418443" Close="30.2016959908158" Open="30.2323120165209" StockPriceDate="2008-01-13T00:00:00"/&gt; 

...

的問題是,當我使用本地報表查看器,我需要重新生成數據集從嵌入數據 - 我不知道該怎麼做:

_reportViewer.LocalReport.DataSources.Add(new ReportDataSource(???)) 

如果成功他向我保證,都與服務器模式和客戶端我的數據工作將始終可用,該報告顯示

也有比XML嵌入到持久化數據更好的辦法?

謝謝,mosh。

回答