Print A Reportingservices Report From C#
Feb 18, 2007hi all.
in my server i have a reportingservice report.
how can i print it from c# code?
hi all.
in my server i have a reportingservice report.
how can i print it from c# code?
I'm wondering how to print a SSRS report without bringing up a report viewer. Is there way to print(PDF format) the SSRS report in the web application( .net ) directly from the "print" button without bringing up a report viewer?
View 2 Replies View RelatedHi,
I dont know if theres a way to print a section of some report, for example a summary report, where I have several charts and tables, and I want to print just the first 2 charts
Could this be done by mapping the document or separating it in some other way?
I tried using 'SubReports' control, but this way I need to have for example the first two charts in a different report (lets say 2charts.rdl), and then in the summary.rdl, add the control and set the link to 2charts.rdl,.... but I think this is pretty annoying considering the future modifications of the format in the 2charts.rdl...
Thanks for your help...
Regards
-Edith Colegio
is there any way to schedule to print reports every morning from ssrs?
View 1 Replies View RelatedhiCould someone please help me in following:I need to update Policy status base upon commencement date and thenprint with new Policy status.I written a stored procedure to update the policy.Now I need to work out how I can print a report. We already doing thereport manually in our VB6 program but this is automatic process. So nousers involve here. It would change the status by running the storedprocedure and then print the report.Would it be possible execute the VB6 program via stored procedure?Would it be possible SQL 2000 produce a report?We used active-x dll in our VB6 program, is it any way can call dll filevia stored procedure?thank you.*** Sent via Developersdex http://www.developersdex.com ***Don't just participate in USENET...get rewarded for it!
View 1 Replies View RelatedhiHow I could print a report on printer using SQL 2000?I am not going in detail about the report as at the moment I need toknow how produce reports on printer.Thank you*** Sent via Developersdex http://www.developersdex.com ***Don't just participate in USENET...get rewarded for it!
View 1 Replies View Related
How do i add a print button to my report? Do i have to use ASP.NET?
(I dont know .NET)
Is there anyother way?
Thanks
hi all.
how can i send a report, (stored on the reporting server) to print?
i know i can render it, but i want to print it , is it possible?
I am looking for a way to, at execution, have 1 single report either print in "letter" or "A4" depending on a parameter I send it... anyone have an idea on where to start on this?
Thank you,
Brian
we have a vb app that displays reports yet when you try and print the report it either doesn't do so (although it appears to queue it) or it prints but with info missing and control info in odd spots. Anyone have any clues as to how to resolve this? My reports do me no good if the developers can't make the apps access them via the applications they are developing.
View 1 Replies View RelatedHi all!
Is there any parameter that we can pass in the report Url to directly print a report?
As we give Format=Excel for exporting the report to excel, is there any parameter to Print.
hi all.
how can i print a report from c# code?
the report is stored on the reporting server.
I want to add some information to a report that I do NOT want to be included in the printed output. Is there any way to designate a rectangle or list or table to NOT print?
Thanks.
Does anyone know, or direct me to an example of, how to print a SERVER report directly to a printer from a windows application? There are plenty of examples on the internet that shows how to do this with a local report but a SERVER report seems to be a whole other animal.
Thanks,
Mark
The code below is a class file done in vb.net. The original idea came from reading this forum and some blogs.
To use the code below, you can create a windows application or service.
then create a class file and drop this code in it.
Remeber to reference the 2005 report execution service and also in the program settings include the path to your server.
IE: ReportExecutionService = http://localhost/ReportServer/ReportExecution2005.asmx or whatever your server URL is at.
Setup the public properties for printername (sharenames work fine), Number of copies and Report name.
That is all there is to it. This code is REALLY expandable to add more options.
Please remember to let me kow if you like this.
Imports System
Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Drawing.Printing
Imports System.IO
Imports System.Web.Services.Protocols
Imports PrintReport.ReportExecution
Imports System.Runtime.InteropServices ' For Marshal.Copy
Namespace PrintReport
Friend Class app
Private m_sPrinterName As String
Private m_sReportName As String
Private m_sNumCopies As Integer
<STAThread()> _
Public Sub Main(ByVal args As String())
Dim pe As PrintMain = New PrintMain()
pe.PrintReport(m_sPrinterName, m_sReportName, m_sNumCopies)
End Sub
Public Property pPrinterName()
Get
Return m_sPrinterName
End Get
Set(ByVal value)
m_sPrinterName = value
End Set
End Property
Public Property pReportName()
Get
Return m_sReportName
End Get
Set(ByVal value)
m_sReportName = value
End Set
End Property
Public Property pNumCopies()
Get
Return m_sNumCopies
End Get
Set(ByVal value)
m_sNumCopies = value
End Set
End Property
End Class
Friend Class PrintMain
Private rs As New ReportExecutionService()
Private m_renderedReport As Byte()()
Private m_delegate As Graphics.EnumerateMetafileProc = Nothing
Private m_currentPageStream As MemoryStream
Private m_metafile As Metafile = Nothing
Private m_numberOfPages As Integer
Private m_currentPrintingPage As Integer
Private m_lastPrintingPage As Integer
Public Sub New()
' Create proxy object and authenticate
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
rs.Url = My.Settings.ReportExecutionService '"http://localhost/ReportServer/ReportExecution2005.asmx"
End Sub
Public Function RenderReport(ByVal reportPath As String) As Byte()()
' Private variables for rendering
Dim deviceInfo As String
Dim format As String = "IMAGE"
Dim firstPage As Byte() = Nothing
Dim encoding As String = ""
Dim mimeType As String = ""
Dim warnings As Warning() = Nothing
Dim reportHistoryParameters As ParameterValue() = Nothing
Dim streamIDs As String() = Nothing
Dim pages As Byte()() = Nothing
Dim historyID As String = Nothing
Dim showHideToggle As String = Nothing
Dim execInfo As New ExecutionInfo
Dim execHeader As New ExecutionHeader()
Dim SessionId As String
Dim extension As String = ""
rs.ExecutionHeaderValue = execHeader
execInfo = rs.LoadReport(reportPath, historyID)
'rs.SetExecutionParameters(parameters, "en-us")
SessionId = rs.ExecutionHeaderValue.ExecutionID
' Build device info based on the start page
deviceInfo = String.Format("<DeviceInfo><OutputFormat>{0}</OutputFormat></DeviceInfo>", "emf")
'Exectute the report and get page count.
Try
' Renders the first page of the report and returns streamIDs for
' subsequent pages
firstPage = rs.Render(format, deviceInfo, extension, encoding, mimeType, warnings, streamIDs)
' The total number of pages of the report is 1 + the streamIDs
m_numberOfPages = streamIDs.Length + 1
pages = New Byte(m_numberOfPages - 1)() {}
' The first page was already rendered
pages(0) = firstPage
Dim pageIndex As Integer = 1
Do While pageIndex < m_numberOfPages
' Build device info based on start page
deviceInfo = String.Format("<DeviceInfo><OutputFormat>{0}</OutputFormat><StartPage>{1}</StartPage></DeviceInfo>", "emf", pageIndex + 1)
pages(pageIndex) = rs.Render(format, deviceInfo, extension, encoding, mimeType, warnings, streamIDs)
pageIndex += 1
Loop
Catch ex As SoapException
'Console.WriteLine(ex.Detail.InnerXml)
Catch ex As Exception
'Console.WriteLine(ex.Message)
Finally
'Console.WriteLine("Number of pages: {0}", pages.Length)
End Try
Return pages
End Function
Public Function PrintReport(ByVal printerName As String, ByVal ReportName As String, Optional ByVal NumCopies As Integer = 0) As Boolean
Me.RenderedReport = Me.RenderReport(ReportName)
Try
' Wait for the report to completely render.
If m_numberOfPages < 1 Then
Return False
End If
Dim printerSettings As PrinterSettings = New PrinterSettings()
printerSettings.MaximumPage = m_numberOfPages
printerSettings.MinimumPage = 1
printerSettings.PrintRange = PrintRange.SomePages
printerSettings.FromPage = 1
printerSettings.ToPage = m_numberOfPages
printerSettings.Copies = NumCopies
printerSettings.PrinterName = printerName
Dim pd As PrintDocument = New PrintDocument()
m_currentPrintingPage = 1
m_lastPrintingPage = m_numberOfPages
pd.PrinterSettings = printerSettings
' Print report
'Console.WriteLine("Printing report...")
AddHandler pd.PrintPage, AddressOf pd_PrintPage
pd.Print()
Catch ex As Exception
'Console.WriteLine(ex.Message)
Finally
' Clean up goes here.
End Try
Return True
End Function
Private Sub pd_PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
ev.HasMorePages = False
If m_currentPrintingPage <= m_lastPrintingPage AndAlso MoveToPage(m_currentPrintingPage) Then
' Draw the page
ReportDrawPage(ev.Graphics)
' If the next page is less than or equal to the last page,
' print another page.
If m_currentPrintingPage <= m_lastPrintingPage Then
m_currentPrintingPage += 1
ev.HasMorePages = True
End If
End If
End Sub
' Method to draw the current emf memory stream
Private Sub ReportDrawPage(ByVal g As Graphics)
If Nothing Is m_currentPageStream OrElse 0 = m_currentPageStream.Length OrElse Nothing Is m_metafile Then
Return
End If
SyncLock Me
' Set the metafile delegate.
Dim width As Integer = m_metafile.Width
Dim height As Integer = m_metafile.Height
m_delegate = New Graphics.EnumerateMetafileProc(AddressOf MetafileCallback)
' Draw in the rectangle
Dim destPoint As Point = New Point(0, 0)
g.EnumerateMetafile(m_metafile, destPoint, m_delegate)
' Clean up
m_delegate = Nothing
End SyncLock
End Sub
Private Function MoveToPage(ByVal page As Int32) As Boolean
' Check to make sure that the current page exists in
' the array list
If Nothing Is Me.RenderedReport(m_currentPrintingPage - 1) Then
Return False
End If
' Set current page stream equal to the rendered page
m_currentPageStream = New MemoryStream(Me.RenderedReport(m_currentPrintingPage - 1))
' Set its postion to start.
m_currentPageStream.Position = 0
' Initialize the metafile
If Not Nothing Is m_metafile Then
m_metafile.Dispose()
m_metafile = Nothing
End If
' Load the metafile image for this page
m_metafile = New Metafile(CType(m_currentPageStream, Stream))
Return True
End Function
Private Function MetafileCallback(ByVal recordType As EmfPlusRecordType, ByVal flags As Integer, ByVal dataSize As Integer, ByVal data As IntPtr, ByVal callbackData As PlayRecordCallback) As Boolean
Dim dataArray As Byte() = Nothing
' Dance around unmanaged code.
If data <> IntPtr.Zero Then
' Copy the unmanaged record to a managed byte buffer
' that can be used by PlayRecord.
dataArray = New Byte(dataSize - 1) {}
Marshal.Copy(data, dataArray, 0, dataSize)
End If
' play the record.
m_metafile.PlayRecord(recordType, flags, dataSize, dataArray)
Return True
End Function
Public Property RenderedReport() As Byte()()
Get
Return m_renderedReport
End Get
Set(ByVal value As Byte()())
m_renderedReport = value
End Set
End Property
End Class
end namespace
Hi there,
I'm working on an invoice report, that requires borders around the whole report. I've got header, footer and body in the report. In the body section, i've got a table which shows line items for an invoice. So the table grows as per the no. of lines in the invoice. As said before I've got to have border around the report. I tried put info in ractangles with borders for header/footer and table with borders in body section. The borders appears fine for headers and footer ractangles but as the table grows/shrinks, border from body section is not continuous to the footer section. i.e. For an invoice with 2 line items the borders for table will appear for two lines only but i want it to be scratched up to the footer area regardless of no. of line items in the invoice.
I've also tried to use borders for header, footer and body sections itself rather than using ractangles. But then when i export the report to pdf and print from pdf, it looks fine but when i tried to print from report manger its missing right hand side border for page header, footer and body. I've made sure there is enough margin around report. Report body/header/footer are 19 cm wide that's mean the report still have 2 cm of space for margins. The left/right margin are 0.5 cm.
I've been trying to do various things for last 2 weeks but not getting anywhere. Can i anyone please help into this?
Thanks,
Vivek
Hi All,
I set my report page width as 13 inch(page size=13in, 11in). Report is working correctly, It is having all the columns when I am exporting the report to PDF. But some columns are missing when I am directly printing the report. Can you please let me know how to print report with all the columns.
Thanks
I've thrown together a homegrown Reporting Services viewer that is basically a wrapper for a browser control. It will reside in our app alongside the Crystal report viewer until we have phased out Crystal.
View 3 Replies View RelatedHi,
I have create a report with A3 size as there are too many fields., but i
wanna to print out on A4 paper properly. is that possible to do?
Cheers
Nick
Hi
I have designed a webpage which has a tabstrip and each tabstrip is linked to a reportviewer.
When I click on the very first tab , the print button in reportviewer toolbar is working just fine!!.
But when I select another tab and click on Print button.,it gives a javascript error stating "Permission Denied",
and the print button stops responding after that.
Any clue!!,or this is a bug in report viewer print button.
We are having a weird problem. User printing a report have to press the print button twice to print a report. It is causing some problem and failing in QA too :-(.
Please help.
Hi experts,
What I am trying to do is to open an existing report in a Print Friendly format .
What is the simplest way to do this using Visual Studio?
Here's the sort of thing I hope is feasible:
I can open my Report on a web page , then on that page can be a button / link for the user in case they want to open
that report in a separate window.
So I'd like to jump to that page by jumping to an URL and sending all parameters
something like :
http://Dev_Server/Reports/Pages/Report.aspx?ItemPath=%2fMy+Reports%2fTest+Report&rsaramOne=Parameters!paramOne.value + paramTwo=Parameters!paramTwo.value + etc all other parameters , I have on that report
Any suggestions would be really appreciated .
Regards,TIA
Hi,
I am having a problem with Print button not showing up. I tried everything but I can get it to show itself on the toolbar. I am using reporting viewer on local report on the web page. I published my local report on the server but still not showing.
If anybody knows how to fix this problem please help.
I am also tring to insert a report parameter in the header section of the report but when I get to parameters section it tells me that "This report does not contain any parameteres".
Thanks in advance!
Hi
When I try to print a very simple report with rs2005 via the print button on the http://servername/report/pages/... website, it says "printing" but nothing happend. When I look at the server (win2003 SP1 + latest hotfixes) the www and sql2005 (SP1 CTP installed) services eat up 100% cpu for ever.
I get no error messages neither in the rs log's nor in os application or system log. With profiler I found out, that there must be some loop. The following stored procedure exec DeletePersistedStreams @SessionID='24iumm55mp32l2ie2nezs0y0'is called about 650 times per second, which explain the load. The only way to stop this, is shut down and restart the www service.
This behaviour can be found with all reports.
The call, view and export of the same reports to pdf, xls, ... works without problems.
Any ideas?
Thanks for your help
Peter
Hello,
We have a requirement that on some reports, like details on a specific inventory item, we need to print with the report and external attachment like a word document, and auto cad drawing, or a picture.
Some of the ideas we are thinking of are:
adding the links to the external documents in a report parameter and then, when the report is about to be printed, get the values and send the documents to the print queue just after we send the report to the print queue.
Creating a custom control on the report to somehow stream the file to the print queue when the report is printed.
Render the report to a pdf and programmatically send the pdf and other attachments to the report queue.
Does anyone have any thoughts on this or, even better, some code that meets the requirements.
Thank you,
Paul
Hello,
I printed Browser Report,but it is getting Blank pages in middle,
that is header part only visible for 2 pages and then data getting printed,
any ideas??
I have the footer with the following in it,
**********************************
= " Page " & Globals!PageNumber & " of " & Globals!TotalPages & " " & String.Format(Globals!ExecutionTime, "dd-MM-yyy uu:mm")
********************************
When i view the report it shows the page number and time, but when i print it does'nt appear at all on the print paper( page number and time)
is there a trick to make it appear on the print.
Thank you very much.
I would like to print the selection criteria on a separate page or report. I explored various forums and help facilities without luck. Any suggestions please?
Hi All
I have a report that looks and works fine in the native 'screen layout' but when I select the Print Layout option, a blank page is inserted after each page. These blank pages contain the header and footer, but not the body section of the report. Has anyone else seen this sort of thing? Is there something in my report layout causing this, or is it a bug in the Print Layout rendering?
Thanks much
Hi, this is my first post here. I hope to be helpful trying to help and not only asking questions arround here. After I have my report ready I will share here the total experience from top to bottom!But for now, here's the issue:
I'm building a RDLC Repor on my ASP.Net VB web application. I added the .rdlc file to the application and created a table to show lines of data binded from a dataset. The thing is:
- The DataSet expects a parameter @intNumber, a identifier to get the correct data to display the correct report.
- I'm using ReportViewer to view the report, and by code I've passed a Report Parameter to the *.RDLC report with success, just like this:
Dim parms(0) As ReportParameter
parms(0) = New ReportParameter("intNumber", 37)
ReportViewer1.LocalReport.SetParameters(parms)
The present issue is the following:
I want to use that parameter sent to the report to be sent to the query of the DataSet as parameter to the query to return the data to fill the report. I've heard that this is not possible, just with report server...
Another issue is the print button, also heard that only can appear on report server...no way to display and work on RDLC reports?Very confused right now...these issues are stupid, MS tools should allow these operations, which are not efficient if this is not possibla on RDLC...
I am having an issue with report printing. I have used a specific font (Garamond) for all the report elements when creating the report in Bus Int. Dev. Studio. While printing from the preview pane, the report prints with the Garamond font (as intended).
But the issue is that after deployment, printing the report (with browser print control) does not print it with the Garamond font (looks like it is using the Arial or a similar font). This changes the whole look and feel of the report. I have tried printing the report from the reportserver, report manager and through URL access. All the 3 methods are giving similar results that the print output is not using the on-screen font.
Anybody else face similar issues? Is there any workaround for this? TIA.
Since SP2 was installed on our SSRS server a couple of days ago, reports viewed in the client Report Viewer control (with or without VS SP1) show a black background when in Print Layout Mode. All other rendering options work fine. Anyone else seen this? Any clues how to fix?
Thanks
Graeme
Hi there,
I got this weird problem and I was wondering whether anyone has an idea of how to resolve this.
I have a working report on the RS server, ran the report and tried to print it straight from the page by clicking on the Print button.
When it printed, it gave me additional pages as though the margins were incorrect. I have additional space on the left of the report, which pushes it out towards the right (very slight but noticable) which ended up printing "blank pages" ( basically only the page header). Moreover it didn't print any of the page footers ( which has the page numbers).
The weird part is that, I tried to export it to PDF format, and when I take a look at the pdf version, it looked fine with no formatting errors. Even printing the pdf works great.
I was wondering whether there was some bug with the RS Server or do I need to do somethin with the config file ? please advise. thanks !
Bernard