I would like to use SQL Reporting Services 2008 to generate my reports, but I want to use my own UI for specifying the report type, columns, parameters and everything. I want to be able to take these criteria, and then kick off an asynchronous request to SSRS and have the report emailed to me. Is this possible? I don't want to go all the way down the road of researching SQL Reporting Services 2008 only to find that it doesn't do what I need it to do. Also, I will have a ton of DB partitions that the data will need to be pulled from. Some reports will need to pull data from only one of these, but other ones may actually need to span different databases. Is it possible when sending a report request to SSRS to specify what servername/database to pull the data from? Is it possible to tell it to take the data from multiple databases and combine it? Thanks.
我想使用SQL Reporting Services 2008生成我的报告,但我想使用自己的UI来指定报告类型,列,参数和所有内容。我希望能够采用这些标准,然后启动对SSRS的异步请求,并通过电子邮件将报告发送给我。这可能吗?我不想一直走在研究SQL Reporting Services 2008的路上,却发现它没有做我需要它做的事情。此外,我将有大量的数据库分区,需要从中提取数据。有些报告只需从其中一个报告中提取数据,但其他报告实际上可能需要跨越不同的数据库。是否可以向SSRS发送报告请求以指定从中提取数据的服务器名称/数据库?是否可以告诉它从多个数据库中获取数据并将其合并?谢谢。
4 个解决方案
#1
3
Like Crystal Reports, ActiveReports and other report generators, SSRS has two basic elements behind each report: the SQL query and the report layout. No matter what tool you use for the SQL -- it can be inline SQL in the report or a call to a stored procedure -- it's going to be the same query. Multiple databases are fine as long as you can specify them up front.
与Crystal Reports,ActiveReports和其他报表生成器一样,SSRS在每个报表后面都有两个基本元素:SQL查询和报表布局。无论您使用什么工具进行SQL - 它可以是报表中的内联SQL,也可以是对存储过程的调用 - 它将是相同的查询。只要您可以预先指定多个数据库就可以了。
You can have parameterized queries, so the user is prompted to input the relevant filters (customer ID, product group, date range, whatever).
您可以使用参数化查询,因此系统会提示用户输入相关过滤器(客户ID,产品组,日期范围等)。
Doing the report layout is similar to other tools -- you drag and drop controls like labels onto the report, and set their formatting.
执行报表布局与其他工具类似 - 您可以将标签等控件拖放到报表上,并设置其格式。
SSRS does provide a lot of options for distributing the report, including email. You can embed the report in an ASP.Net web page, leave it on the report server site for users to browse to, run it in the wee hours of the morning and cache it so every user doesn't have to wait for the lengthy query to run.
SSRS确实提供了很多分发报告的选项,包括电子邮件。您可以将报表嵌入到ASP.Net网页中,将其保留在报表服务器站点上供用户浏览,在凌晨时分运行并对其进行缓存,以便每个用户都不必等待冗长查询运行。
It's a great tool. I think it will be worth your effort to experiment with it. I would wait on creating the customized UI until you've exhausted the possibilities inherent in the tool.
这是一个很棒的工具。我认为值得您努力尝试它。我会等到创建自定义UI,直到你已经用尽了工具固有的可能性。
#2
1
SSRS is not designed with this scenario in mind, for that matter I am not sure that any out of the box reporting solution is going to have an elegant solution for this. While SSRS can do what you are asking (as well as others), it is by no means quick or easy. You seem to be looking for an advanced ad-hoc solution with dynamic sourcing of the data. I would first question the requirements and determine if the business scenario really justifies such an implementation. I would weigh custom building a solution vs your learning curve with a BI reporting solution. You may find that it is easier to just build something on your own.
SSRS的设计并未考虑到这种情况,因此我不确定任何开箱即用的报告解决方案是否会为此提供优雅的解决方案。虽然SSRS可以做你想要的(以及其他人),但它绝不是快速或简单的。您似乎正在寻找具有动态数据源的高级临时解决方案。我首先会质疑这些要求,并确定业务场景是否真正证明了这种实现的合理性。我会通过BI报告解决方案权衡定制构建解决方案与您的学习曲线。你可能会发现自己构建一些东西更容易。
#3
1
I think the heterogeneous dynamic database mashup is probably going to be the most challenging part.
我认为异构动态数据库mashup可能是最具挑战性的部分。
Depending on what your scalability requirements are, one place that has that part covered, and a report writer, is Access. (Duck! Incoming!)
根据您的可伸缩性要求,包含该部分的一个位置和报表编写器是Access。 (鸭子!来了!)
#4
0
I think you may be creating a rod for your own back to a certain extent as RS ships with a few interfaces for report creation.
我认为你可能会在某种程度上为自己创建一个杆,因为RS附带了一些用于创建报告的界面。
Mind you the end product is an rdl file which is nothing but xml, so you can write them by hand if you really like.
请注意,最终产品是一个rdl文件,它只是xml,所以如果你真的喜欢,你可以手工编写它们。
Multiple data sources are supported, but combining them on a single control/chart/etc are not, so you'll need to configure yourself a cross database capability from one of your data-sources prior to the report request if you want to do that.
支持多个数据源,但是在单个控件/图表/等上组合它们不是,因此如果要执行此操作,则需要在报告请求之前从您的一个数据源配置自己的跨数据库功能。
#1
3
Like Crystal Reports, ActiveReports and other report generators, SSRS has two basic elements behind each report: the SQL query and the report layout. No matter what tool you use for the SQL -- it can be inline SQL in the report or a call to a stored procedure -- it's going to be the same query. Multiple databases are fine as long as you can specify them up front.
与Crystal Reports,ActiveReports和其他报表生成器一样,SSRS在每个报表后面都有两个基本元素:SQL查询和报表布局。无论您使用什么工具进行SQL - 它可以是报表中的内联SQL,也可以是对存储过程的调用 - 它将是相同的查询。只要您可以预先指定多个数据库就可以了。
You can have parameterized queries, so the user is prompted to input the relevant filters (customer ID, product group, date range, whatever).
您可以使用参数化查询,因此系统会提示用户输入相关过滤器(客户ID,产品组,日期范围等)。
Doing the report layout is similar to other tools -- you drag and drop controls like labels onto the report, and set their formatting.
执行报表布局与其他工具类似 - 您可以将标签等控件拖放到报表上,并设置其格式。
SSRS does provide a lot of options for distributing the report, including email. You can embed the report in an ASP.Net web page, leave it on the report server site for users to browse to, run it in the wee hours of the morning and cache it so every user doesn't have to wait for the lengthy query to run.
SSRS确实提供了很多分发报告的选项,包括电子邮件。您可以将报表嵌入到ASP.Net网页中,将其保留在报表服务器站点上供用户浏览,在凌晨时分运行并对其进行缓存,以便每个用户都不必等待冗长查询运行。
It's a great tool. I think it will be worth your effort to experiment with it. I would wait on creating the customized UI until you've exhausted the possibilities inherent in the tool.
这是一个很棒的工具。我认为值得您努力尝试它。我会等到创建自定义UI,直到你已经用尽了工具固有的可能性。
#2
1
SSRS is not designed with this scenario in mind, for that matter I am not sure that any out of the box reporting solution is going to have an elegant solution for this. While SSRS can do what you are asking (as well as others), it is by no means quick or easy. You seem to be looking for an advanced ad-hoc solution with dynamic sourcing of the data. I would first question the requirements and determine if the business scenario really justifies such an implementation. I would weigh custom building a solution vs your learning curve with a BI reporting solution. You may find that it is easier to just build something on your own.
SSRS的设计并未考虑到这种情况,因此我不确定任何开箱即用的报告解决方案是否会为此提供优雅的解决方案。虽然SSRS可以做你想要的(以及其他人),但它绝不是快速或简单的。您似乎正在寻找具有动态数据源的高级临时解决方案。我首先会质疑这些要求,并确定业务场景是否真正证明了这种实现的合理性。我会通过BI报告解决方案权衡定制构建解决方案与您的学习曲线。你可能会发现自己构建一些东西更容易。
#3
1
I think the heterogeneous dynamic database mashup is probably going to be the most challenging part.
我认为异构动态数据库mashup可能是最具挑战性的部分。
Depending on what your scalability requirements are, one place that has that part covered, and a report writer, is Access. (Duck! Incoming!)
根据您的可伸缩性要求,包含该部分的一个位置和报表编写器是Access。 (鸭子!来了!)
#4
0
I think you may be creating a rod for your own back to a certain extent as RS ships with a few interfaces for report creation.
我认为你可能会在某种程度上为自己创建一个杆,因为RS附带了一些用于创建报告的界面。
Mind you the end product is an rdl file which is nothing but xml, so you can write them by hand if you really like.
请注意,最终产品是一个rdl文件,它只是xml,所以如果你真的喜欢,你可以手工编写它们。
Multiple data sources are supported, but combining them on a single control/chart/etc are not, so you'll need to configure yourself a cross database capability from one of your data-sources prior to the report request if you want to do that.
支持多个数据源,但是在单个控件/图表/等上组合它们不是,因此如果要执行此操作,则需要在报告请求之前从您的一个数据源配置自己的跨数据库功能。