我有一个复杂的报告要求来创建重新订购制造材料报告。数据来自三个不同的数据库:两个通过ODBC的Oracle数据库和一个SQL Server数据库。用户需要传递参数的日期范围。我想做的是将C#中的数据与业务逻辑结合起来,然后将数据传递给报表。这在Active Reports中是一项简单的任务,但SSRS就是客户所拥有的。
如何设置参数屏幕并将数据表传递给SSRS报告?
我现在唯一能想到的就是创建一个自定义ASP.NET参数屏幕,收集数据,将数据保存到表中,然后运行报告。我还必须有一个cron作业来清除报告表中的旧数据。这是一个肯定的kludge。
答案 0 :(得分:0)
最简单的方法是从Sql Server为Oracle数据库设置linked servers,然后您可以在SQL中跨服务器加入,并从三个数据库创建单个数据集。
您可以将C#程序转换为web service that returns XML,并将其用作报告中的数据源。
我使用过的另一种更为复杂的方法是创建一个custom data processing extension来提供数据。虽然这方面有点繁重,但如果您有一个需要查询的API而不是数据库(例如,RESTful Web服务),那么这是一个强大的解决方案。