我在让reportviewer在wpf中运行时遇到了严重的问题,我在谷歌上找到的大部分信息要么是相同的教程复制和粘贴,要么是购买2000英镑包的建议,这对我都没有帮助。
我没有错误,没有任何消息,但报告显示为空白且没有数据。但是我可以在调试器中发现数据存在。我有以下代码:
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.PackingItemList
是一个IEnumerable
集合,在这种情况下ObservableCollection
,数据已加载并拾取一个事件,并且在加载数据时刷新了报告视图,我还有一个按钮按下时运行刷新,但无论我尝试报告总是显示为没有数据。
我敢肯定我在这里遗漏了一些东西,但是谷歌搜索结果中充斥着来自 Telerik 和 componentone 等控制包的页面,这些页面的成本要高得多。
所有这一切都在完成,只是为了让我可以在维护组的多个页面上打印一个数据网格,我希望这是非常标准的,但结果却非常复杂。
编辑:
还要注意,reportviewer 似乎在绘制,但报告本身丢失了,没有标题,没有数据,所有控件都被禁用,即使我可以清楚地看到 localreport 的数据源有 49 个值,我完全被难住了。