ReportExecutionService.Render Metode

Definisi

Memproses laporan tertentu dan merendernya dalam format yang ditentukan.

public:
 cli::array <System::Byte> ^ Render(System::String ^ Format, System::String ^ DeviceInfo, [Runtime::InteropServices::Out] System::String ^ % Extension, [Runtime::InteropServices::Out] System::String ^ % MimeType, [Runtime::InteropServices::Out] System::String ^ % Encoding, [Runtime::InteropServices::Out] cli::array <ReportExecution2005::Warning ^> ^ % Warnings, [Runtime::InteropServices::Out] cli::array <System::String ^> ^ % StreamIds);
public byte[] Render(string Format, string DeviceInfo, out string Extension, out string MimeType, out string Encoding, out ReportExecution2005.Warning[] Warnings, out string[] StreamIds);
member this.Render : string * string * string * string * string * Warning[] * String[] -> byte[]
Public Function Render (Format As String, DeviceInfo As String, ByRef Extension As String, ByRef MimeType As String, ByRef Encoding As String, ByRef Warnings As Warning(), ByRef StreamIds As String()) As Byte()

Parameter

Format
String

Format untuk merender laporan. Argumen ini memetakan ke ekstensi penyajian. Ekstensi yang didukung termasuk XML, NULL, CSV, IMAGE, PDF, HTML4.0, HTML3.2, MHTML, EXCEL, dan Word. Daftar ekstensi yang didukung dapat diperoleh dengan memanggil ListRenderingExtensions() metode .

DeviceInfo
String

String XML yang berisi konten khusus perangkat yang diperlukan oleh ekstensi penyajian yang ditentukan dalam Format parameter . Pengaturan DeviceInfo harus diteruskan sebagai elemen internal elemen XML DeviceInfo. Untuk informasi selengkapnya tentang pengaturan informasi perangkat untuk format output tertentu, lihat Meneruskan Pengaturan Informasi Perangkat ke Ekstensi Rendering.

Extension
String

[out] Ekstensi file yang sesuai dengan aliran output.

MimeType
String

[out] Jenis MIME dari laporan yang dirender.

Encoding
String

[out] Pengodean yang digunakan saat server laporan merender konten laporan.

Warnings
Warning[]

[out] Array Warning objek yang menjelaskan peringatan apa pun yang terjadi selama pemrosesan laporan.

StreamIds
String[]

[out] Pengidentifikasi aliran. ID ini diteruskan ke RenderStream(String, String, String, String, String) metode . Anda dapat menggunakannya untuk merender sumber daya eksternal (gambar, dll.) yang terkait dengan laporan tertentu.

Jika ekstensi rendering IMAGE digunakan, metode menghasilkan array kosong di StreamIds.

Mengembalikan

Byte[]

Array Byte[] laporan dalam format yang ditentukan.

Contoh

Untuk mengkompilasi contoh kode berikut, Anda harus mereferensikan Reporting Services WSDL dan mengimpor namespace tertentu. Untuk informasi selengkapnya, lihat Mengkompilasi dan Menjalankan Contoh Kode. Contoh kode berikut merender laporan di MHTML dan menyimpannya sebagai file .mht ke disk.

Imports System  
Imports System.IO  
Imports System.Web.Services.Protocols  
Imports myNamespace.MyReferenceName  

Class Sample  
    Public Shared Sub Main()  
        Dim rs As New ReportExecutionService()  
        rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
        rs.Url = "http://myserver/reportserver/ReportExecution2005.asmx"  

        ' Render arguments  
        Dim result As Byte() = Nothing  
        Dim reportPath As String = "/AdventureWorks Sample Reports/Employee Sales Summary "  
        Dim format As String = "MHTML"  
        Dim historyID As String = Nothing  
        Dim devInfo As String = "<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>"  

        ' Prepare report parameter.  
        Dim parameters(2) As ParameterValue  

        parameters(0) = New ParameterValue()  
        parameters(0).Name = "EmpID"  
        parameters(0).Value = "288"  
        parameters(1) = New ParameterValue()  
        parameters(1).Name = "ReportMonth"  
        parameters(1).Value = "6" ' June  
        parameters(2) = New ParameterValue()  
        parameters(2).Name = "ReportYear"  
        parameters(2).Value = "2004"  

        Dim credentials As DataSourceCredentials() = Nothing  
        Dim showHideToggle As String = Nothing  
        Dim encoding As String = ""  
        Dim mimeType As String = ""  
        Dim warnings As Warning() = Nothing  
        Dim reportHistoryParameters As ParameterValue() = Nothing  
        Dim streamIDs As String() = Nothing  

        Dim execInfo As New ExecutionInfo  
        Dim execHeader As New ExecutionHeader()  
        Dim SessionId As String  
        Dim extension As String = ""  

        rs.ExecutionHeaderValue = execHeader  

        execInfo = rs.LoadReport(reportPath, historyID)  

        rs.SetExecutionParameters(parameters, "en-us")  

        SessionId = rs.ExecutionHeaderValue.ExecutionID  
        Console.WriteLine("SessionID: {0}", rs.ExecutionHeaderValue.ExecutionID)  

        Try  
            result = rs.Render(format, devInfo, extension, _  
               encoding, mimeType, warnings, streamIDs)  

            execInfo = rs.GetExecutionInfo()  

            Console.WriteLine("Execution date and time: {0}", execInfo.ExecutionDateTime)  

        Catch e As SoapException  
            Console.WriteLine(e.Detail.OuterXml)  
        End Try  

        ' Write the contents of the report to an MHTML file.  
        Try  
            Dim stream As FileStream = File.Create("report.mht", result.Length)  
            Console.WriteLine("File created.")  
            stream.Write(result, 0, result.Length)  
            Console.WriteLine("Result written to the file.")  
            stream.Close()  
        Catch e As Exception  
            Console.WriteLine(e.Message)  
        End Try  
    End Sub 'Main  
End Class  
using System;  
using System.IO;  
using System.Web.Services.Protocols;  
using myNamespace.MyReferenceName;  

class Sample  
{  
    static void Main(string[] args)  
    {  
        ReportExecutionService rs = new ReportExecutionService();  
        rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
        rs.Url = "http://myserver/reportserver/ReportExecution2005.asmx";  

        // Render arguments  
        byte[] result = null;  
        string reportPath = "/AdventureWorks Sample Reports/Employee Sales Summary";  
        string format = "MHTML";  
        string historyID = null;  
        string devInfo = @"<DeviceInfo><Toolbar>False</Toolbar></DeviceInfo>";  

        // Prepare report parameter.  
        ParameterValue[] parameters = new ParameterValue[3];  
        parameters[0] = new ParameterValue();  
        parameters[0].Name = "EmpID";  
        parameters[0].Value = "288";  
        parameters[1] = new ParameterValue();  
        parameters[1].Name = "ReportMonth";  
        parameters[1].Value = "6"; // June  
        parameters[2] = new ParameterValue();  
        parameters[2].Name = "ReportYear";  
        parameters[2].Value = "2004";  

        DataSourceCredentials[] credentials = null;  
        string showHideToggle = null;  
        string encoding;  
        string mimeType;  
        string extension;  
        Warning[] warnings = null;  
        ParameterValue[] reportHistoryParameters = null;  
        string[] streamIDs = null;  

        ExecutionInfo execInfo = new ExecutionInfo();  
        ExecutionHeader execHeader = new ExecutionHeader();  

        rs.ExecutionHeaderValue = execHeader;  

        execInfo = rs.LoadReport(reportPath, historyID);  

        rs.SetExecutionParameters(parameters, "en-us");   
        String SessionId = rs.ExecutionHeaderValue.ExecutionID;  

        Console.WriteLine("SessionID: {0}", rs.ExecutionHeaderValue.ExecutionID);  

        try  
        {  
            result = rs.Render(format, devInfo, out extension, out encoding, out mimeType, out warnings, out streamIDs);  

            execInfo = rs.GetExecutionInfo();  

            Console.WriteLine("Execution date and time: {0}", execInfo.ExecutionDateTime);  

        }  
        catch (SoapException e)  
        {  
            Console.WriteLine(e.Detail.OuterXml);  
        }  
        // Write the contents of the report to an MHTML file.  
        try  
        {  
            FileStream stream = File.Create("report.mht", result.Length);  
            Console.WriteLine("File created.");  
            stream.Write(result, 0, result.Length);  
            Console.WriteLine("Result written to the file.");  
            stream.Close();  
        }  
        catch (Exception e)  
        {  
            Console.WriteLine(e.Message);  
        }  

    }  
}  

Keterangan

Tabel di bawah ini memperlihatkan informasi header dan izin pada operasi ini.

Penggunaan Header SOAP (Dalam) TrustedUserHeaderValue

(Dalam) ExecutionHeaderValue

(Keluar) ServerInfoHeaderValue
Izin Yang Diperlukan Mode Asli Pada laporan utama dan semua sublaporan: ReadProperties AND ExecuteAndView
Izin Yang Diperlukan Mode SharePoint Pada laporan utama dan semua sublaporan: <xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems>

Render merender laporan yang diproses yang terkait dengan eksekusi laporan yang diidentifikasi di ExecutionInfo header . Jika tidak ada rekam jepret sementara untuk laporan yang diproses dalam status eksekusi, metode ini akan menjalankan laporan (jika semua persyaratan kredensial dan parameter terpenuhi), sehingga rekam jepret sementara dibuat untuk status eksekusi. Jika laporan diolah ulang karena nilai parameter non-kueri telah berubah, rekam jepret sementara baru dibuat. Untuk informasi selengkapnya tentang status eksekusi, lihat Mengidentifikasi Status Eksekusi.

Jika opsi eksekusi diatur ke rekam jepret cache atau eksekusi, panggilan ke Render dapat menggunakan rekam jepret yang ada.

Jika laporan diatur ke cache dan nilai parameter dan kredensial yang disediakan cocok, salinan rekam jepret yang di-cache dapat dimuat alih-alih benar-benar memproses laporan.

Jika persyaratan kredensial dan parameter tidak terpenuhi, metode ini akan mengembalikan kesalahan.

Panggilan berikutnya untuk Render dapat digunakan untuk mengambil halaman tambahan laporan jika ekstensi penyajian mendukung penentuan beberapa halaman.

Batasan metode Render adalah bahwa output tidak dapat dialirkan, sehingga seluruh file harus dalam memori.

Silakan lihat Mengidentifikasi Status Eksekusi untuk diskusi siklus hidup eksekusi, yang mencakup deskripsi langkah-langkah yang diperlukan untuk memuat dan merender laporan.

Berlaku untuk