ReportExecutionService.Render Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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
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.