我是否可以使用Powershell生成SSRS报告(带参数)并将其打印到网络打印机。
我将使用SQL代理作业轮询一个表来获取新的订单条目。当订单进入时,我想生成SSRS报告并将其打印到我们网络上的许多远程打印机之一(打印机将是输入参数之一),例如,在下订单时在相应的仓库中打印拣货单
我们目前使用批处理文件打印到本地打印机,但程序经常挂起并且无法很好地扩展。
答案 0 :(得分:1)
在这种情况下:
报告名称:票务系统
参数是:日期和部门
报告格式:PDF
#Place adobe in your path
$env:Path = $env:Path + ";C:\Program Files (x86)\Adobe\Reader 11.0\Reader"
#Specify variables and pass parameters and specify format of report PDF (to keep things simple)
$url = "http://$serverName/ReportServer?/$reportFolder/Ticket+System&Date=3-31-2014&Department=Finance&rs:Format=PDF"
#Use alternative credentials as needed to access report server
$webclient = New-Object System.Net.WebClient
$webclient.UseDefaultCredentials = $TRUE
$file = "C:\temp\report.pdf"
$webclient.DownloadFile($url,$file)
#Specify printer \\server\name
$printer = "\\NorthSide\SharpPrinter"
#The /s /o switch may not be necessary. You can test it out.
AcroRd32.exe /s /o /t $file $printer
Get-Process AcroRd32.exe | kill
参考文献: 此链接将指示如何通过URL将参数传递给报表 http://msdn.microsoft.com/en-us/library/ms155391.aspx
此链接将指示如何通过网址以可打印格式访问报告 http://msdn.microsoft.com/en-us/library/ms154040.aspx
此链接将向您展示如何使用powershell通过url将此文件写入文件系统。 http://teusje.wordpress.com/2011/02/19/download-file-with-powershell/
此链接将向您展示如何将作业推送到假脱机程序。使用Powershell 4.0版
http://technet.microsoft.com/en-us/library/hh849886.aspx
如果您在sql代理作业中使用PowerShell时遇到问题,我会选择使用任务计划程序作业进行轮询并使用SQLPS模块查询数据库。
希望有所帮助。