Jumat, 09 Oktober 2020

Ssrs: Mencetak Eksklusif Ke Printer

Pembuatan report umumnya secara default menyediakan halaman preview sebelum kita melaksanakan printing. Namun di beberapa kasus kita ingin mencetak (print) eksklusif tanpa harus preview menampilkan report apalagi dulu. Klo report nya pake SQL Reporting yang file rdl nya ditaro di sever, gimana cara nya? Hal ini juga sempet membuatpuyeng, karena waktu googling source nya minim banget. Alhamdulillah tetapi nya bisa dapet dan jalan. Berikut contoh dengan menggunakan code VB.NET. Report yang hendak dicetak: Buat UI mirip gambar di bawah ini, cuma form dengan button. Report Viewer akan kita buat secara runtime, dan tersembunyi. Kemudian kita buat isyarat berikut: Imports System.Drawing.Printing   Imports System.Drawing.Imaging   Imports System.IO   Imports Microsoft.Reporting.WinForms Public Class frmPrintReport     Dim pages As New List(Of Metafile)     Dim pageIndex As Integer = 0     Dim doc As New Printing.PrintDocument()     Dim ReportViewer1 As New ReportViewer     Private Sub frmPrintReport_Load( ByVal sender As System.Object, _         ByVal e As System.EventArgs) Handles MyBase .Load                   Button1.Text = "Print"         With ReportViewer1             .Visible = False             .ProcessingMode = ProcessingMode.Remote             .ServerReport.ReportPath = "/HRD/Attendance Report"             .ServerReport.ReportServerUrl = New _                      Uri( "http://localhost/ReportServer" )         End With         Me .Controls.Add(ReportViewer1)     End Sub     Private Sub PrintPageHandler( ByVal sender As Object, _         ByVal e As PrintPageEventArgs)         Dim page As Metafile = pages(pageIndex)         pageIndex += 1         Dim pWidth As Integer = 827         Dim pHeight As Integer = 1100         e.Graphics.DrawImage(page, 0, 0, pWidth, pHeight)         e.HasMorePages = pageIndex     End Sub     Private Sub Button1_Click( ByVal sender As System.Object, _         ByVal e As System.EventArgs) Handles Button1.Click         Dim doc As New Printing.PrintDocument()         doc = New Printing.PrintDocument()         AddHandler doc.PrintPage, AddressOf PrintPageHandler         Dim obrolan As New PrintDialog()         obrolan.Document = doc         Dim print As DialogResult         print = dialog.ShowDialog()         doc.PrinterSettings = obrolan.PrinterSettings         Dim deviceInfo As String = _         " " & _         " emf " & _         "  8.5in " & _         "  11in " & _         "  0.25in " & _         "  0.25in " & _         "  0.25in " & _         "  0.25in " & _         " "         Dim warnings() As Microsoft.Reporting.WinForms.Warning         Dim streamids() As String         Dim mimeType, encoding, filenameExtension, path As String         mimeType = "" : encoding = "" : filenameExtension = ""         'Input parameter report         Dim DateFrom As Date = CDate ( "4/15/2015" )         Dim DateTo As Date = CDate ( "4/15/2015" )         Dim parmDateFrom As New ReportParameter( "DateFrom" , DateFrom)         Dim parmDateTo As New ReportParameter( "DateTo" , DateTo)         Dim parmSO1(1) As ReportParameter         parmSO1(0) = parmDateFrom         parmSO1(1) = parmDateTo         Dim data() As Byte         ReportViewer1.ServerReport.SetParameters(parmSO1)         data = ReportViewer1.ServerReport.Render( "Image" , _                deviceInfo, mimeType, encoding, filenameExtension, _                streamids, warnings)         pages.Add( New Metafile( New MemoryStream(data)))         For Each pageName As String In streamids             data = ReportViewer1.ServerReport.RenderStream( "Image" , _                    pageName, deviceInfo, mimeType, encoding)             pages.Add(New Metafile(New MemoryStream(data)))         Next         doc.Print()         Me .ReportViewer1.RefreshReport()     End Sub End Class Markicob, mari kita coba.Panggil form kemudian klik tombol print, dan obrolan print eksklusif muncul. Kita tidak menyaksikan preview dahulu kan? Contoh di bawah ini Rani coba print nya pake PDF Printer. Referensi: http://blogs.msdn.com/b/bryanke/archive/2004/02/11/71491.aspx https://monirblog.wordpress.com/2012/10/16/print-ssrs-report-directly-to-a-printer-without-viewing-using-vb-net/ Click here if you like this article. Artikel Mengenai SSRS lainnya: Menginstall Business Intelligence SQL Server 2005 Membuat Report menggunakan SQL Server Reporting Service (dengan wizard) Membuat Report Tanpa Wizard (Part 1) Membuat Report Tanpa Wizard (Part 2) Design Layout Report Filter/Parameter Report  Data source Report dari Stored Procedure Data Parameter dari Query Database  Membuat Group Report  Membuat Nomor Urut Cara Upload File Report (.rdl) Ke Report Server SQL Server Reporting Menghilangkan Page Break pada Email Subscription  List Subscription dengan Query  Mencetak Langsung ke Printer (Tanpa Preview) 
Sumber http://rani-irsan.blogspot.com


EmoticonEmoticon