2009-09-17 59 views
3

我们正在考虑迁移到Sql Server 2005 Reporting Services。我们现有的许多报告都要求在渲染数据前对其进行预处理。在将数据传递给SSRS 2005之前,我可以预处理数据吗?

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

我读过一些关于Data Processing extensions但我不知道这就是我想要什么,然后(如果我理解正确的话),我需要实现整个处理流程(包括从存储检索数据proc)只是为了在最后按摩一下。

如何从数据源检索之后插话和预处理的数据集,但它传递给渲染过吗?

回答

1

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

例如,创建组件并将其添加到报告后,你可以有一个表,其中电池的表现之一是这样的:

= Code.ReverseGeocode(!字段纬度,经度字段)

获得一些指导见http://msdn.microsoft.com/en-us/library/ms155798.aspx

0

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

的数据加载到ASP-NET,你可以预先进行处理,然后将它传递到提示控制。

我不确定SSRS在处理所有数据之前如何处理自定义代码/ DLL,然后才考虑呈现(如= Code.ReverseGeocode解决方案中所述)。 RBAR在文本框或单元格层次上感觉不对。

+0

我同意大会的建议觉得不妥,但是你的答案似乎很“手册”(倒不是说是如此糟糕)。无论如何,我可以在通过报表管理器访问报表的同时执行您的建议吗?甚至通过URL访问(ala http://msdn.microsoft.com/en-us/library/ms153586.aspx)? – JPot

+0

@JPot:只要您使用URL访问或Rpt经理,SSRS获取数据并呈现。在本地模式下的房车控制允许中间步骤 – gbn

0

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

+0

我不相信我可以。你知道如何向第三方Web服务发出一个SOAP请求,以从SQL Server *中反转地理编码的一对坐标吗?我当然不知道。 – JPot

+0

因为我不知道那个web服务是干什么的,也许不是,但是我使用函数从SQL Server内部完成了大量的经纬度计算,所以我敢打赌,如果你不觉得你必须留下来绑定到一些第三方工具。我可能还会注意到,你没有提到使用第三方工具或SOAP调用来处理你的问题。这可能对试图帮助解决您的问题的人有所帮助。 – HLGEM

+0

@HLGEM:好的,我已经更新了这个问题,以便更清楚。一般来说,反向地理编码由第三方处理,通常通过Web服务进行编程访问。 – JPot

1

您还可以使用SSIS包的结果作为数据源(报表运行时的包是按需执行)。地理编码Web服务和关系结果集:

,如果你正在试图解决加入来自多个数据源的数据到例如单个数据集的问题,这是非常有益的。

我不认为很多人认识到这存在,它是用于处理EII类型多么有用报告

相关问题