Script PowerShell per stampare automaticamente il rapporto SSRS 2008R2
-
21-12-2019 - |
Domanda
Posso utilizzare un PowerShell per generare e stampare un report SSRS (con parametri) su una stampante di rete.
Userò un sondaggio di lavoro Agente SQL una tabella per nuove voci dell'ordine.Quando un ordine viene visualizzato Voglio generare un rapporto SSRS e stamparlo in una delle tante stampanti remote (la stampante sarà uno dei parametri di input) sulla nostra rete, ad esempio, stampare un biglietto di selezione nel magazzino appropriato quando viene posizionato un ordine.
Attualmente usiamo i file batch per stampare su stampanti locali, ma il programma si blocca spesso e non si adatta bene.
Soluzione
In questo caso:
Nome del rapporto: Sistema di biglietto
I parametri
I parametri sono: Data e Dipartimento
Report Formato: 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
.
Riferimenti: Questo link indicherà come passare i parametri a un report tramite URL http://msdn.microsoft.com/en-us/library/ms155391.aspx
Questo link indicherà come accedere a un report in un formato stampabile tramite URL http://msdn.microsoft.com/en-us/library/ms154040.aspx
Questo link ti mostrerà come utilizzare PowerShell per scrivere questo file nel filesystem tramite URL. http://teusje.wordpress.com/2011/02/ 19 / Download-File-con-PowerShell /
Questo link ti mostrerà come premere il lavoro allo spooler. Utilizzo di PowerShell versione 4.0
http://technet.microsoft.com/en-us/library/hh849886.aspx
Se si ha problemi a utilizzare PowerShell in un lavoro di Agente SQL, in alternativa farò il polling con un lavoro di pianificazione di attività e interrogare il database utilizzando il modulo SQLPS.
Spero che ti aiuti.