Поделиться через


Метод LocalReport.Render (String, String, out String, out String, out String, out String[], out Warning[])

Обрабатывает отчет и готовит его к просмотру в заданном формате.

Пространство имен: Microsoft.Reporting.WinForms
Сборка: Microsoft.ReportViewer.WinForms (в microsoft.reportviewer.winforms.dll)

Синтаксис

'Декларация
'Применение

параметры

  • format
    Формат, в котором отчет готовится к просмотру. Этот аргумент соответствует модулю подготовки отчетов. Поддерживаются форматы Microsoft Office Excel, PDF и IMAGE.
  • deviceInfo
    XML-строка, содержащая сведения об устройствах, которые необходимы для модуля подготовки отчетов, заданного в параметре format. Дополнительные сведения о настройках сведений об устройстве для различных форматов вывода см. в разделе «Настройки сведений об устройстве» электронной документации по SQL Server.
  • mimeType
    [выход] Тип MIME готового к просмотру отчета.
  • encoding
    [выход] Кодировка, используемая для подготовки к просмотру содержимого отчета.
  • fileNameExtension
    [выход] Расширение, используемое для имени выходного файла.
  • streams
    [выход] Идентификаторы потоков. Их можно использовать для подготовки к просмотру внешних ресурсов (например, изображений), которые связаны с отчетом.
  • warnings
    [выход] Массив объектов Warning, описывающий предупреждения, созданные во время обработки отчета.

Возвращаемое значение

Массив Byte отчета в указанном формате.

Замечания

Метод Render можно использовать для экспорта и печати отчета.

Примеры

Следующий пример кода предполагает наличие приложения Windows Forms с элементом управления ReportViewer и кнопкой. В этом примере кода загружается локальный отчет и подготавливается к просмотру в элементе управления, а затем с помощью метода Render отчет экспортируется в формат Excel.

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

См. также

Справочник

Класс LocalReport
Члены LocalReport
Пространство имен Microsoft.Reporting.WinForms