0

我在让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 个值,我完全被难住了。

4

2 回答 2

3
_reportViewer.RefreshReport();
于 2013-12-10T10:01:32.667 回答
1

我已经构建了 .net4 应用程序,并且使用 WPF 应用程序下的内置 .RDLC 报告功能非常好。我遇到过这样的情况,报告似乎在没有具体理解原因的情况下被淹没。在某些情况下,我只需要删除数据源/对象模式引用,然后重新添加它们就可以了。

我所做的另一种方法是创建一个全新的报告,然后将您的数据源添加到您的报告中,然后只做一个简单的 2-3 个字段的列式报告,并将您的报告更改为只运行那个。一旦可行,我会将原始报告的部分复制/粘贴到新报告中,并一次保留工作。也许从报告中的标题开始并忽略细节/页脚,然后添加任何页脚信息,然后是中间细节。您可能会遇到一些区分大小写的模式名称预期问题,从而导致问题,甚至是“隐藏”或其他关于何时显示/隐藏某些输出字段的条件表达式。

只是为了确认,报告在调试模式下也视觉上失败了,而不仅仅是在运行时正确吗?

于 2013-10-23T13:31:40.517 回答