2009-09-17 75 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類型多麼有用報告

相關問題