水晶报告最佳实践问题

时间:2009-11-03 10:40:17

标签: asp.net javascript crystal-reports

我有一个关于通过Crystal Report传递给Crystal Report的参数的任务,我想找到实现它的最佳方法。

想象一下,我有参数化和非报告参数化。我正在开发一个报告管理器,使用户能够订阅报告并使用他们的参数安排报告。我有一个包含报告列表的订阅网页。当用户想要订阅报告并安排报告时,如果报告中没有参数,则可以,但是如果有任何参数需要传递给报告(我们可以从rpt文件中找到),则用户应该能够通过页面中的面板输入这些参数值。我将这些参数的值保存到数据库中。

实际上,我需要创建一个参数输入面板来获取参数并将它们的类型,值等保存到数据库中,然后我需要以编程方式使用这些参数将报告导出为不同的文件格式。 / p>

基本上,我必须根据相应报告的参数类型开发参数输入面板运行时间。

有谁知道实现它的最佳方法是什么?

感谢您的帮助,如果需要/请提供进一步说明/

亲切的问候。

3 个答案:

答案 0 :(得分:2)

您可以使用BusinessObjects Enterprise,但这样会很昂贵。

否则,您需要构建自己的参数控件。控件将询问报告,确定它包含的参数类型,然后相应地构建控件的UI。它需要在回发之间保持状态,捕获并显示每个参数的默认值和当前值集合。

几年前我开始建立这样一个控件,但从未完成它。你可能猜到这是相当多的工作。

答案 1 :(得分:1)

在评论你的问题时,你问的是建议代替Crystal Reports,所以我想我会提供SSRS。如果您使用的是SQL Server,我建议您考虑使用SQL Server Reporting Services。虽然我相信Crystal Reports更强大(可能只是因为我更了解它们),但我相信很多订阅,调度和参数处理都可以在初始配置之后完成。

我不是SSRS的专家,所以也许有更多知识的人会用更具体的细节来编辑我的答案。希望这会有所帮助。

答案 2 :(得分:1)

您可以将每个报表打开为ReportDocument对象,然后通过ParameterFields集合进行枚举,以评估每个报表的名称,类型和其他信息。有了这些信息,您就可以生成参数输入面板。