2013-10-23 58 views
0

我在使用wpf讓reportviewer運行出現嚴重問題,我在谷歌上發現的大多數信息都是相同的教程拷貝&粘貼或購買英鎊2k包的建議,這兩者都不能幫助我。reportviewer在WPF中使用rdlc

我沒有錯誤,沒有任何消息不算什麼,但報告顯示,沒有數據的空白。然而,我可以在調試器中看到數據存在。我有以下代碼:

private void reportViewer_Load(object sender, EventArgs e) 
    { 
    if (!_isReportViewLoaded) 
    { 
       Microsoft.Reporting.WinForms.ReportDataSource reportDataSource = new Microsoft.Reporting.WinForms.ReportDataSource(); 
       PackingListManager pManager = (PackingListManager)IoC.Get<IManager<PackingItem>>(); 
       reportDataSource.Name = "PackingListDataset"; 
       reportDataSource.Value = pManager.PackingItemList; 
       this._reportViewer.LocalReport.DataSources.Add(reportDataSource); 
       this._reportViewer.LocalReport.ReportEmbeddedResource = "ShippingClient.Report1.rdlc"; 
       //_reportViewer.Refresh(); 
       _isReportViewLoaded = true; 
       _reportViewer.Refresh(); 
    } 

數據集的名稱是什麼在報表中設置正確,pManager.PackingItemListIEnumerable集,在這種情況下ObservableCollection,數據加載和事件拾取並在數據加載時刷新報告視圖,我也有一個按鈕,當按下時運行刷新,但無論如何,我嘗試報告總是顯示爲沒有數據。

我敢肯定,我在這裏失去了一些東西,但谷歌搜索結果與來自控制軟件包,如Telerik的和ComponentOne的這是遠遠昂貴的考慮網頁淹沒。

所有這一切都正在做,只是這樣我就可以打印多個頁面維護組一個DataGrid一些東西,我希望是相當標準,但原來是瘋狂的複雜的事情。

編輯:

也只是要注意,中的ReportViewer似乎借鑑,但其本身缺少報告,沒有頭,沒有數據什麼都沒有,所有的控件被禁用,即使壽我可以清楚地看到本地報告的數據源有49個值,我完全被難住了。

回答

3
_reportViewer.RefreshReport(); 
1

我.NET4應用程序建立與一個WPF應用程序下內置.RDLC報告VERY WELL工作。我曾經有過這樣的情況:報告似乎沒有明確的理解。在某些情況下,我只需刪除數據源/對象模式引用,然後重新添加它們即可。

另一種方法我已經做的是創建一個全新的報告,那麼你的數據源添加到您的報告,然後只是做一個簡單的柱狀報告說2-3領域,改變你的報告,只運行一個。一旦有效,我會將原始報告的各個部分複製/粘貼到新報告中,並一次保留工作部分。也許從報告中的標題開始,忽略細節/頁腳,然後添加任何頁腳信息,然後添加中間細節。在區分大小寫的模式名稱期望導致問題時,您可能會遇到一些問題,甚至在顯示/隱藏某些輸出字段時甚至會出現「隱藏」或其他條件表達式。

只是爲了確認,該報告是在視覺上調試模式只是在運行時正確的失敗太不?

+0

我想你的解決方案,並在一開始並沒有區別,但我注意到,有一個名爲「refreshReport」使用其他功能加載的數據解決了我的問題後,不知道爲什麼我從來沒有見過該功能之前發佈。 – Ben

+0

@ user1412240,所以這個DID爲你工作:) ..它暴露你看到其他功能:)有時開始一條新路徑打開你的眼睛,否則你認爲你已經知道的事情......它仍然發生在我身上次也。 – DRapp