How does Microsoft reporting work

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
PantoffelSlippersAsked:
Who is Participating?
 
RyanAndresConnect With a Mentor Commented:
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
 
RyanAndresConnect With a Mentor Commented:
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
 
PantoffelSlippersAuthor Commented:
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
Get your problem seen by more experts

Be seen. Boost your question’s priority for more expert views and faster solutions

 
RyanAndresCommented:
The ReportViewer component allows you to save as a PDF file. It can also export to an excel file.
0
 
PantoffelSlippersAuthor Commented:
Can I have a ReportViewer component without having a form?
0
 
PantoffelSlippersAuthor Commented:
RyanAndres:

In your code:

What is lr?   LocalReport I presume?

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


Thanks
0
 
PantoffelSlippersAuthor Commented:
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
 
RyanAndresCommented:
That is correct.
0
 
RyanAndresCommented:
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
 
PantoffelSlippersAuthor Commented:
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
 
RyanAndresConnect With a Mentor Commented:
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
 
PantoffelSlippersAuthor Commented:
Thank you very much for the effort - it's not a complete solution though.

Thanks
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.