【问题标题】:Can I pre-process data before passing it off to SSRS 2005?我可以在将数据传递给 SSRS 2005 之前对其进行预处理吗?
【发布时间】:2009-09-17 16:47:22
【问题描述】:

我们正在考虑迁移到 Sql Server 2005 Reporting Services。我们现有的许多报告都需要在呈现之前对数据进行预处理。

例如,我们有一个从存储过程返回 GPS 坐标(纬度和经度)的报告的查询,但是在将数据集传递给我们的报告引擎(当前为 Crystal)之前,我们调用一个 Web 服务来反转地理编码坐标并获取地址字符串。我们将其推送到 DataSet 对象中。

我读过一些关于 Data Processing extensions 的文章,但我不确定那是我想要的,因为那时(如果我理解正确的话)我需要实现 整个 处理流程(包括从存储的过程中检索数据)只是为了在最后稍微按摩一下。

在从数据源检索数据集之后,但在将其传递给渲染器之前,如何插入和预处理数据集?

【问题讨论】:

    标签: reporting-services reportingservices-2005


    【解决方案1】:

    您可以创建一个包含处理单个记录的方法的 .NET 程序集。然后,将该程序集包含在报告中,并在呈现每一行时调用该方法。这将执行处理并显示结果。

    例如,在创建程序集并将其添加到报表后,您可以有一个表格,其中一个单元格表达式如下所示:

    =Code.ReverseGeocode(Fields!Latitude, Fields!Longitude)

    请参阅http://msdn.microsoft.com/en-us/library/ms155798.aspx 以获得一些指导。

    【讨论】:

      【解决方案2】:

      您还可以将 SSIS 包的结果用作数据源(该包在报表运行时按需执行)。

      如果您尝试解决将来自多个数据源的数据连接到单个数据集中的问题,这将非常有用,例如:地理编码 Web 服务和关系结果集。

      我认为很多人都没有意识到它的存在以及它对于处理EII 类型报告有多么有用

      【讨论】:

        【解决方案3】:

        一种选择是在本地模式下使用 ReportViewer 控件。

        数据被加载到 ASP-NET 中,您可以对其进行预处理,然后将其传递给控件进行呈现。

        当您想在考虑演示之前处理所有数据时(如提到的 =Code.ReverseGeocode 解决方案),我不确定 SSRS 将如何处理自定义代码/DLL。 RBAR 在文本框或单元格级别感觉不对。

        【讨论】:

        • 我同意组装建议感觉不对,但是您的回答似乎非常“手动”(不是那么糟糕)。无论如何,我可以在仍然通过报告管理器访问报告的同时执行您的建议吗?或者甚至通过 URL 访问(ala msdn.microsoft.com/en-us/library/ms153586.aspx)?
        • @JPot:只要您使用 URL 访问或 Rpt Mgr,SSRS 就会获取数据并呈现。本地模式下的 RV 控制允许中间步骤
        【解决方案4】:

        我想我不明白你为什么不编写 SQl 来以你想要的方式提供数据。您不能通过函数计算字段或使用 where 子句进一步过滤数据。您可以在存储过程或查询数据源中进行相当广泛的数据操作。

        【讨论】:

        • 我不相信我可以。您是否知道如何向第 3 方 Web 服务发出 SOAP 请求以对一对坐标进行反向地理编码,从 SQL Server 中?我当然不会。
        • 因为我不知道该 Web 服务是做什么的,也许不知道,但我已经在 SQL Server 中使用函数进行了广泛的经纬度计算,所以我敢打赌,如果你不这样做,它可以完成感觉好像您必须与某些第三方工具保持联系。我还可能注意到,您没有提到使用调用第三方工具或 SOAP 来处理您的问题。这可能对试图帮助您解决问题的人有所帮助。
        • @HLGEM:很好,我已经更新了这个问题,使其更加清晰。通常,反向地理编码由第三方处理,通常通过 Web 服务进行编程访问。
        猜你喜欢
        • 2023-03-19
        • 2013-04-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-09-30
        • 2020-08-06
        • 2019-03-31
        相关资源
        最近更新 更多