SSIS導出數據到PDF

問題描述:SSIS可以很方便的將數據導出到csv等文本文件,但是其自帶控件中並沒有可以直接pdf作爲目標文件的方法。很多網站上說可以引用dll庫或者下載一些第三方插件就可以在SSIS中用scripts的方式導出。個人覺得有些麻煩,再加上公司對風險控制很嚴厲,所以不會輕易因爲一些小事情而採用這種方法。後來google了一下,參考了下面文章中的方法:http://sqlserverrider.wordpress.com/2013/02/15/generate-pdf-report-from-ssis/


環境:SSIS 2008, SSRS 2008


解決思路:

用過SSRS的朋友都知道,其中的報表在打開之後可以手動導出成pdf,excel等格式的文件,也可以右鍵報表拷貝其報表地址,在該地址中添加&rs:Format=PDF,複製粘貼到瀏覽器中,便會出現pdf文件保存框。


解答方法:

在ssis中引用script腳本控件,我這裏和google出的方法一樣用vb.net方法,需要首先定義一個報表的http Connection Manager,在創建http Connection Manager的 Server URL裏面粘貼報表rdl所上傳的report server地址,勾選Use credentials,輸入能夠訪問該report server的賬號和密碼。測試下是否能夠成功connect。下面新建一個vb.net的script控件,輸入以下代碼,ReportServer是剛剛新建的http Connection Manager名字。單獨執行該script就可以導出你想要的pdf報表了。

Dim httpConn As ConnectionManager = Dts.Connections("ReportServer")
Dim clientConn As HttpClientConnection = New HttpClientConnection(httpConn.AcquireConnection(Nothing))


        Dim ReportFileName As String = "C:\文件目錄\SampleReport.pdf"
        clientConn.ServerURL = "http://報表地址&rs:Command=Render&rs:Format=PDF&rs:ClearSession=True&rc:Parameters=False"
        clientConn.DownloadFile(ReportFileName, True)


Dts.TaskResult = ScriptResults.Success


結論:很多客戶想要定期(weekly, mongthly)收到一些不同類型的報表,如pdf和word,excel等等,而且量也比較大,一般此種類型多半是公司裏面的歷史報表,需要人工輸出,用上面的方式作一些循環處理,添加不同的參數給報表,這樣就可以給客戶發送不同的報表,只要定義好ReportFileName,所生成的文件報表就會放在這裏,或者通過email的方式發送出去。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章