Solved

How does Microsoft reporting work

Posted on 2009-05-04
12
495 Views
Last Modified: 2013-11-07
Hi Experts,

I'm writing a VB.Net 2005 application.  .Net Framework 2.

I would like to incorporate a few Microsoft reports(rdlc) in my application.  These won't run off a SSRS server.  They'll be local reports.

I can't seem to get the syntax working.  Can someone please provide me with an exact code snippet?  Let's say I have a report called "Report1.rdlc" in my project.

In Private Sub ExportReport
    ....  code goes here
End Sub

I need to load the report file and/or load the report defition.  I keep getting errors that say the repord defition hasn;t been loaded.  Then I need to add a datasource to the report and pass though a datatable or dataset.  Then I need to export the report to a PDF file on disk.

I've been struggling to get this working. Please provide me with code snippet that works.

Thanks
0
Comment
Question by:PantoffelSlippers
  • 6
  • 6
12 Comments
 
LVL 8

Accepted Solution

by:
RyanAndres earned 300 total points
ID: 24296541
Use the ReportViewer component in your form.
ReportViewer viewer = new ReportViewer();
DataTable dt = new DataTable(); //  Change this to your datatable
ReportDataSource ds = new ReportDataSource("DataSet", dt); // Change this to your dataset name defined int he report file
lr.DataSources.Add(ds);
viewer.LocalReport.DisplayName = "Report Name";
viewer.LocalReport.ReportPath = @"C:\report.rdlc";
viewer.LocalReport.Refresh();
viewer.RefreshReport();

Open in new window

0
 
LVL 8

Assisted Solution

by:RyanAndres
RyanAndres earned 300 total points
ID: 24296548
This is the VB code:
Dim viewer As New ReportViewer()
Dim dt As New DataTable()
' Change this to your datatable
Dim ds As New ReportDataSource("DataSet", dt)
' Change this to your dataset name defined int he report file
lr.DataSources.Add(ds)
viewer.LocalReport.DisplayName = "Report Name"
viewer.LocalReport.ReportPath = "C:\report.rdlc"
viewer.LocalReport.Refresh()
viewer.RefreshReport()

Open in new window

0
 

Author Comment

by:PantoffelSlippers
ID: 24297420
Thanks Ryan

I'll give that a shot but I really needed to export to PDF as the original post requests.

I think there's a render method  but I cant get it to work.

Thanks

0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 8

Expert Comment

by:RyanAndres
ID: 24297465
The ReportViewer component allows you to save as a PDF file. It can also export to an excel file.
0
 

Author Comment

by:PantoffelSlippers
ID: 24315132
Can I have a ReportViewer component without having a form?
0
 

Author Comment

by:PantoffelSlippers
ID: 24315518
RyanAndres:

In your code:

What is lr?   LocalReport I presume?

Also, after the viewer is refreshed, how do I get the PDF?


Thanks
0
 

Author Comment

by:PantoffelSlippers
ID: 24316069
RyanAndres,

IN your code you pass through a datasource which is called "Dataset".

Does this mean that in your report, there needs to be a datasource of the same name?
0
 
LVL 8

Expert Comment

by:RyanAndres
ID: 24316149
That is correct.
0
 
LVL 8

Expert Comment

by:RyanAndres
ID: 24316321
lr is LocalReport.

The ReportViewer component includes the save toolstrip item / button and you have the option to save as pdf or xls.

The ReportViewer component requires the following references:
Microsoft.ReportViewer.Common
Microsoft.ReportViewer.WinForms
System.Windows.Forms

However, you cannot display a reportviewer component in a console window :]
0
 

Author Comment

by:PantoffelSlippers
ID: 24316813
RyanAndres,

Thank you.  I have a few comments though....

You add the datasource to lr which is a LocalReport.

Then ReportViewer displays its localreport but there is no line of code that states that ReportViewer's localreport is lr.

Regarding the export of PDF:  I was planning to produce these PDF's from a Windows service with no user interface, therfore no form and no user to click export.  I do know that LocalReport has a Render method that does this but I can't get the syntax right.

Any idea how this method works?

Thanks
0
 
LVL 8

Assisted Solution

by:RyanAndres
RyanAndres earned 300 total points
ID: 24316895
Sorry I took this code from different areas of my own code.

This line:
lr.DataSources.Add(ds);

Should be:
viewer.LocalReport.DataSources.Add(ds);

Sorry but I haven't rendered a report outside of a form before. I'm sure you can get an answer on EE. :]
0
 

Author Closing Comment

by:PantoffelSlippers
ID: 31577602
Thank you very much for the effort - it's not a complete solution though.

Thanks
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A recent question popped up and the discussion heated up regarding updating a COMMENTS (TXT) field in a table using SSRS. http://www.experts-exchange.com/Microsoft/Development/MS-SQL-Server/MS-SQL_Reporting/Q_27475269.html?cid=1572#a37227028 (htt…
Today, still in the boom of Apple, PC's and products, nearly 50% of the computer users use Windows as graphical operating systems. If you are among those users who love windows, but are grappling to keep the system's hard drive optimized, then you s…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

828 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question