Reporting services 跨数据集或子报表重用web服务响应

Reporting services 跨数据集或子报表重用web服务响应,reporting-services,ssrs-2008,Reporting Services,Ssrs 2008,我使用一个web服务作为我的XML数据源,它返回包含多个层次数据的实体,如下所示(为项目隐私而修改的代码) 公共类用户数据{ //一些标量性质 公共字符串Id。。。 公共字符串名称。。。 公共字符串姓氏。。。 //一些导航属性 公共广播。。。 公共课程信息[]课程。。。 公共获奖信息[]奖。。。 } 若要显示同一报表中的所有实体信息,我可以在报表中创建不同的数据集,以调用我的web服务并过滤返回的服务响应的首选部分 要仅获取UserData属性,请执行以下操作: UserApp.Report

我使用一个web服务作为我的XML数据源,它返回包含多个层次数据的实体,如下所示(为项目隐私而修改的代码)

公共类用户数据{
//一些标量性质
公共字符串Id。。。
公共字符串名称。。。
公共字符串姓氏。。。
//一些导航属性
公共广播。。。
公共课程信息[]课程。。。
公共获奖信息[]奖。。。
}
若要显示同一报表中的所有实体信息,我可以在报表中创建不同的数据集,以调用我的web服务并过滤返回的服务响应的首选部分

要仅获取UserData属性,请执行以下操作:


UserApp.ReportingServices/IReportingService/GetUserData
GetUserDataResponse{}/UserData
要获取地址信息和UserData属性,请执行以下操作:


UserApp.ReportingServices/IReportingService/GetUserData
GetUserDataResponse{}/UserData/Address
要获取课程信息和UserData属性,请执行以下操作:


UserApp.ReportingServices/IReportingService/GetUserData
GetUserDataResponse{}/UserData/Courses/CourseInfo
我的问题就在这里提出:如果我像上面那样使用多个数据集查询,我的报告将对它拥有的每个数据集进行web服务调用,尽管我的服务总是返回相同的XML响应,其中包括上面三个数据集所需的所有数据

有没有办法对其他数据集重复使用查询返回的XML响应?如果可能的话,我的报告将只调用一次web服务,数据集将过滤XML响应的不同部分,而无需反复调用web服务


如果不可能,那么在同一个报表中显示多个层次数据的最佳实践是什么?我是否必须创建不同的web服务来返回数据的不同层次结构部分?

Reporting services数据集仅限于一个简单的行和列表-它们无法处理具有多个层次结构的数据,如您所述


我会重新设计您的web服务以反映这一点,可能会将其拆分为您描述的三组数据。然后将有三个web服务调用,但没有内容的重复。它们还将并行执行,这可能比您当前的设计更有效。

您说得对,迈克。我无法将层次结构数据设置为reporting services数据集。

但是,我可以将层次结构数据作为一个服务调用的响应发送到报表。问题是,;我是否可以在不同的数据集中使用此xml数据的不同部分(通过数据集重复使用相同的xml响应,而不是为每个数据集进行新的web服务调用)?SSRS数据集不是这样工作的-每个数据集都是独立执行的。感谢您的澄清。工作方法似乎是为每个数据集调用我的web服务。