LocalReport.Render Method (String, String, out String, out String, out String, out String[], out Warning[])

Processes the report and renders it in the specified format.

Namespace: Microsoft.Reporting.WinForms
Assembly: Microsoft.ReportViewer.WinForms (in microsoft.reportviewer.winforms.dll)

Syntax

'Declaration
Public Overrides Function Render ( _
    format As String, _
    deviceInfo As String, _
    <OutAttribute> ByRef mimeType As String, _
    <OutAttribute> ByRef encoding As String, _
    <OutAttribute> ByRef fileNameExtension As String, _
    <OutAttribute> ByRef streams As String(), _
    <OutAttribute> ByRef warnings As Warning() _
) As Byte()
'Usage
Dim instance As LocalReport
Dim format As String
Dim deviceInfo As String
Dim mimeType As String
Dim encoding As String
Dim fileNameExtension As String
Dim streams As String()
Dim warnings As Warning()
Dim returnValue As Byte()

returnValue = instance.Render(format, deviceInfo, mimeType, encoding, fileNameExtension, streams, warnings)
public override byte[] Render (
    string format,
    string deviceInfo,
    out string mimeType,
    out string encoding,
    out string fileNameExtension,
    out string[] streams,
    out Warning[] warnings
)
public:
virtual array<unsigned char>^ Render (
    String^ format, 
    String^ deviceInfo, 
    [OutAttribute] String^% mimeType, 
    [OutAttribute] String^% encoding, 
    [OutAttribute] String^% fileNameExtension, 
    [OutAttribute] array<String^>^% streams, 
    [OutAttribute] array<Warning^>^% warnings
) override
public byte[] Render (
    String format, 
    String deviceInfo, 
    /** @attribute OutAttribute() */ /** @ref */ String mimeType, 
    /** @attribute OutAttribute() */ /** @ref */ String encoding, 
    /** @attribute OutAttribute() */ /** @ref */ String fileNameExtension, 
    /** @attribute OutAttribute() */ /** @ref */ String[] streams, 
    /** @attribute OutAttribute() */ /** @ref */ Warning[] warnings
)
JScript does not support passing value-type arguments by reference.

Parameters

  • format
    The format in which to render the report. This argument maps to a rendering extension. Supported formats include Microsoft Office Excel, PDF, and Image.
  • deviceInfo
    An XML string that contains the device-specific content that is required by the rendering extension specified in the format parameter. For more information about device information settings for specific output formats, see "Device Information Settings" in SQL Server Books Online.
  • mimeType
    [out] The MIME type of the rendered report.
  • encoding
    [out] The encoding used when rendering the contents of the report.
  • fileNameExtension
    [out] The file name extension used for the output file.
  • streams
    [out] The stream identifiers. You can use them to render external resources (images, for example) that are associated with the report.
  • warnings
    [out] An array of Warning objects that describes any warnings that occurred during report processing.

Return Value

A Byte array of the report in the specified format.

Remarks

The Render method can be used to export and print a report.

Example

The following code example assumes a Windows Forms application with a ReportViewer control and a button. In this code example, a local report is loaded into and rendered in the control and then the Render method is used to export the report to Excel format.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Reporting.WinForms;
using System.IO;

namespace SampleCode
{
    public partial class Form1 : Form
    {
        private DataTable LoadSalesData()
        {
            // Load data from XML file.
            DataSet dataSet = new DataSet();
            dataSet.ReadXml(@"c:\Reports\data.xml");
            return dataSet.Tables[0];
        }
        
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.reportViewer1.ProcessingMode = ProcessingMode.Local;
            this.reportViewer1.LocalReport.ReportPath = @"c:\Reports\Report1.rdl";
            reportViewer1.LocalReport.DataSources.Add(
            new ReportDataSource("Sales", LoadSalesData()));
            this.reportViewer1.RefreshReport();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Warning[] warnings;
            string[] streamids;
            string mimeType;
            string encoding;
            string extension;

            byte[] bytes = reportViewer1.LocalReport.Render(
               "Excel", null, out mimeType, out encoding, out extension, 
               out streamids, out warnings);

            FileStream fs = new FileStream(@"c:\output.xls", FileMode.Create);
            fs.Write(bytes, 0, bytes.Length);
            fs.Close();

            MessageBox.Show("Report exported to output.xls", "Info");

        }
    }
}
Imports Microsoft.Reporting.WinForms
Imports System.IO

Public Class Form1

    Private Function LoadSalesData() As DataTable
        '' Load data from XML file
        Dim dataSet = New DataSet
        dataSet.ReadXml("c:\Reports\data.xml")
        Return dataSet.Tables(0)
    End Function

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ReportViewer1.ProcessingMode = ProcessingMode.Local
        ReportViewer1.LocalReport.ReportPath = "c:\Reports\Report1.rdl"
        Dim myDataSource = New ReportDataSource("Sales", LoadSalesData())
        ReportViewer1.LocalReport.DataSources.Add(myDataSource)
        Me.ReportViewer1.RefreshReport()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim warnings As Warning() = Nothing
        Dim streamids As String() = Nothing
        Dim mimeType As String = Nothing
        Dim encoding As String = Nothing
        Dim extension As String = Nothing
        Dim bytes As Byte()

        bytes = ReportViewer1.LocalReport.Render("Excel", Nothing, mimeType, _
            encoding, extension, streamids, warnings)

        Dim fs As New FileStream("c:\output.xls", FileMode.Create)
        fs.Write(bytes, 0, bytes.Length)
        fs.Close()

        MessageBox.Show("Report exported to output.xls", "Info")
    End Sub
End Class

See Also

Reference

LocalReport Class
LocalReport Members
Microsoft.Reporting.WinForms Namespace