Skip to main content
Email Password   helpLost your password?

ReportViewer Toolbar

Introduction

Microsoft released a new component called ReportViewer based on the new RDL technology. Since this is a new component, there are not enough samples about it. There are many questions about how to localize and customize the ReportViewer toolbar, in some forums. Some developers want to add a help button on it, some people want to localize it for Turkish etc.

What is RDL - Report Definition Language

A report definition contains data retrieval and layout information for a report. Report Definition Language (RDL) is an XML representation of this report definition. RDL is an open schema; developers can extend RDL with additional attributes and elements.

The standard file extension for report definition files is .rdl. Its MIME type is text/xml.

More resources about RDL

Background

The best way to localize and customize the ReportViewer toolbar is to hide it and implement its methods in your own code. This article is simply based on this idea.

Using the code

You can simply hide the ReportViewer toolbar, like this:

repView.ShowToolBar = false;

This will completely hide the ReportViewer toolbar. Then add your own toolstrip and implement the necessary methods.

To find a string in the report:

private bool frmCmdFind()
{
    int found = this.repView.Find(txtSearch.Text, 1);
    if (found > 0)
    {
        btnFindNext.Enabled = true;
    }
    else
    {
        MessageBox.Show("Searched string not found", 
                        "Info", MessageBoxButtons.OK, 
                        MessageBoxIcon.Information);
        btnFindNext.Enabled = false;
    }
    return true;
}

To exporting a report as an Adobe Acrobat PDF file:

private bool frmCmdPdf()
{
    LocalReport lr = this.repView.LocalReport;
    lr.ReportPath = this.repView.LocalReport.ReportPath;
    string outputFile = this.ReportDisplayName + ".pdf";
    File.Delete(outputFile);
    Warning[] warnings;
    string[] streamids;
    string mimeType = "";
    string encoding = "";
    string extension = "";

    deviceInfo = "";

    byte[] bytes = lr.Render("PDF", deviceInfo, out mimeType, 
                             out encoding, out extension, 
                             out streamids, out warnings);

    FileStream fs = new FileStream(outputFile, FileMode.Create);
    fs.Write(bytes, 0, bytes.Length);
    fs.Close();
    System.Diagnostics.Process p = new System.Diagnostics.Process();
    p = new System.Diagnostics.Process();

    p.StartInfo.FileName = outputFile;
    p.Start();
    return true;
}

For full implementation, see the source file above.

Conclusion

Microsoft ReportViewer is a powerful component to display your report, and RDL is a good way to implement the reporting features. I believe that in the near future, many RDL designer tools and RDL viewer tools will be available in the market.

You must Sign In to use this message board.
 
 
Per page   
 FirstPrevNext
GeneralSimply way to customize report ToolBar Pin
general.jesiu
9:42 5 Nov '09  
GeneralThanks, Pin
S. Töpfer
23:20 28 Sep '09  
GeneralRe: Thanks, Pin
yincekara
2:09 29 Sep '09  
GeneralHow to invoke the pagesteup dialog box programatically Pin
Member 4290118
7:57 10 Apr '08  
GeneralRe: How to invoke the pagesteup dialog box programatically Pin
yincekara
2:23 29 Sep '09  
Generalcode licence Pin
marsu36
23:29 22 Dec '07  
GeneralRe: code licence Pin
yincekara
23:11 14 May '08  
GeneralRefreshing the Report Bounds Pin
f r i s c h
4:17 13 Sep '07  
GeneralRe: Refreshing the Report Bounds Pin
yincekara
4:32 13 Sep '07  
GeneralRe: Refreshing the Report Bounds Pin
f r i s c h
22:33 13 Sep '07  
GeneralRe: Refreshing the Report Bounds Pin
yincekara
22:58 13 Sep '07  
Generalshowing report in report viewer without using smart tags Pin
MeSiddy
7:37 16 Aug '07  
GeneralRe: showing report in report viewer without using smart tags Pin
yincekara
8:50 16 Aug '07  
QuestionReportviewer Help Pin
abraylyan
16:00 11 Mar '07  
AnswerRe: Reportviewer Help Pin
yincekara
22:47 11 Mar '07  
GeneralReportViewer problem Pin
Kschuler
9:31 29 Jan '07  
GeneralRe: ReportViewer problem Pin
polymorphism
3:32 8 Feb '07  
GeneralRe: ReportViewer problem Pin
Kschuler
3:54 9 Feb '07  
GeneralRe: ReportViewer problem Pin
Aeroday
7:16 19 Jul '07  
GeneralTurkish language Pin
Maksi
23:25 20 Nov '06  
GeneralRe: Turkish language Pin
yincekara
23:58 20 Nov '06  
GeneralRe: Turkish language Pin
yincekara
1:03 12 Feb '07  
Generallocalization [modified] Pin
lemravec
9:16 14 Aug '06  
GeneralRe: localization Pin
polymorphism
0:26 21 Aug '06  
QuestionAnother approach Pin
Koru.nl
0:31 2 Jun '06  


Last Updated 25 May 2006 | Advertise | Privacy | Terms of Use | Copyright © CodeProject, 1999-2009