gpt4 book ai didi

reporting-services - 跨数据集或子报表重用 Web 服务响应

转载 作者:行者123 更新时间:2023-12-02 03:51:54 25 4
gpt4 key购买 nike

我使用网络服务作为我的 XML 数据源,它返回包含多个分层数据的实体,如下所示(针对项目隐私修改的代码);

public class UserData {
// some scalar properties
public string Id ...
public string Name ...
public string Surname ...

// some navigational properties
public Address address ...
public CourseInfo[] courses ...
public AwardInfo[] awards ...
}

在同一报告中显示所有实体信息,我可以在报告中创建不同的数据集来调用我的网络服务并过滤返回的服务响应的首选部分。

仅获取 UserData 属性:

<Query>
<Method Name="GetUserData" Namespace="UserApp.ReportingServices"/>
<SoapAction>UserApp.ReportingServices/IReportingService/GetUserData</SoapAction>
<ElementPath IgnoreNamespaces="true">GetUserDataResponse{}/UserData</ElementPath>
</Query>

获取 Address 信息和 UserData 属性:

<Query>
<Method Name="GetUserData" Namespace="UserApp.ReportingServices"/>
<SoapAction>UserApp.ReportingServices/IReportingService/GetUserData</SoapAction>
<ElementPath IgnoreNamespaces="true">GetUserDataResponse{}/UserData/Address</ElementPath>
</Query>

获取类(class)信息和 UserData 属性:

<Query>
<Method Name="GetUserData" Namespace="UserApp.ReportingServices"/>
<SoapAction>UserApp.ReportingServices/IReportingService/GetUserData</SoapAction>
<ElementPath IgnoreNamespaces="true">GetUserDataResponse{}/UserData/Courses/CourseInfo</ElementPath>
</Query>

我的问题就在这里提出:如果我像上面那样使用多个数据集查询,我的报告将对它拥有的每个数据集进行网络服务调用,尽管我的服务总是返回相同的 XML 响应,其中包括所有以上三个数据集所需的数据。

是否有任何方法可以将查询返回的 XML 响应重新用于其他数据集?如果可能的话,我的报告将只调用网络服务一次,而数据集将过滤该 XML 响应的不同部分,而无需一次又一次地调用网络服务。

如果这不可能,那么在同一报告中显示多个分层数据的最佳做法是什么?我是否必须创建不同的 Web 服务来返回数据的不同层次部分?

最佳答案

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

我会重新设计您的网络服务以反射(reflect)这一点,可能会将其拆分为您描述的三组数据。然后会有3次web服务调用,但是没有重复的内容。它们也将并行执行,这可能比您当前的设计更高效。

关于reporting-services - 跨数据集或子报表重用 Web 服务响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14068129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com