我需要从WCF服务生成报告我有哪些选择?

时间:2011-02-09 18:02:17

标签: wcf reporting service report

我创建了一个与WCF服务通信的“winform”应用程序。

winform显示包含许多行的datagridview。用户可以选择(复选框)他希望打印的行,然后单击打印按钮。

所选行被发送到我的WCF服务中的方法,该方法又返回二进制数据的集合(要打印的文档)。返回后,我在磁盘上为返回集合中的每个二进制数据创建一个pdf文件。

完成后,这些新创建的文档将被发送到打印机......

注意: 在创建这些pdf文档之前,我需要创建一个“摘要”报告文档,该文档将在任何这些pdf文档之前打印。

为此,我在WCF服务中调用一个将返回二进制数据的方法。然后我得到那个二进制文件并用它创建一个摘要pdf文档...

这是我的问题: 创建“摘要报告”的最佳方法是什么?

到目前为止,我一直在尝试使用Reporting Services设计我的摘要报告,但是我正在抓住那些我希望在该报告中做的事情的吸管(即:尝试添加复选框列并制作它根据某个规则“选择”或不选择和/或使我的报告双语......)。所以我想也许RS不像我想的那样灵活/直观......

我的WCF服务将调用Reporting Services Web服务,调用相应的报告并返回我将发送回winform应用程序的二进制数据。

我也使用Crystal Report,但由于我从未使用它,因此会产生反作用......

我能想到的最后一个选择是从我的WCF服务中调用一个网页,传递必要的参数。网页将呈现自己,我会尝试将该网页转换为二进制数据,这将由我的WCF服务方法返回...

虽然我没有尝试过最后一种选择,但我认为它可以让我更灵活地选择我能做什么/不能做什么。

有没有人有建议或其他可以帮助我的替代方案? 感谢

1 个答案:

答案 0 :(得分:1)

我没有意识到这篇文章仍然开放......

如果有人想知道,这是我最终提出的解决方案:

获取二进制数据集合并循环遍历该集合以在用户磁盘上生成物理PDF文件后,我需要一种方法来调用(第二次)我的WCF生成摘要报告。一旦渲染,想法是获取生成的结果(二进制)并将该数据发送回winform应用程序,这样我就可以创建一个很好的小Summary.pdf文件(在用户的磁盘上)。

完成后,使用第三方组件以编程方式将所有生成的PDF文件发送到打印机。

现在......因为摘要报告可能需要一段时间来呈现自己,所以我增加了获得超时的机会。增加超时不是一个合适的选择......

所以解决方案是,我决定在winform应用程序中包含一个客户端报告定义文件(.rdlc),而不是在服务器上调用/创建摘要报告。

基本上,当我安装winform应用程序时,它还包含一个Summary.rdlc文件。当适当的时间到来时,我从WCF服务获取报告所需的数据,并将此数据提供给.rdlc文件,该文件在用户计算机上本地呈现,然后在用户的磁盘上创建Summary.pdf文件。 / p>

就是这样!

相关问题