Solved

How does Microsoft reporting work

Posted on 2009-05-04
12
497 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
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

Revamp Your Training Process

Drastically shorten your training time with WalkMe's advanced online training solution that Guides your trainees to action.

Question has a verified solution.

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

Hi, I am very much excited today since I'm going to share something very exciting Tool used for Analytical Reporting and that's nothing but MICROSTRATEGY. Actually there are lot of other tools available in the market for Reporting Such as Co…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
There's a multitude of different network monitoring solutions out there, and you're probably wondering what makes NetCrunch so special. It's completely agentless, but does let you create an agent, if you desire. It offers powerful scalability …
Monitoring a network: how to monitor network services and why? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the philosophy behind service monitoring and why a handshake validation is critical in network monitoring. Software utilized …

726 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