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的方式发送出去。

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