ReportExecutionService.Render Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Обрабатывает указанный отчет и готовит его к просмотру в заданном формате.
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()
Параметры
- Format
- String
Формат, в котором отчет готовится к просмотру. Этот аргумент соответствует модулю подготовки отчетов. Поддерживаются следующие модули: XML, NULL, CSV, IMAGE, PDF, HTML4.0, HTML3.2, MHTML, EXCEL и Word. Список поддерживаемых модулей можно получить, вызвав метод ListRenderingExtensions().
- DeviceInfo
- String
XML-строка, содержащая содержимое конкретного устройства, необходимое модулем подготовки отчетов, указанным в параметре Format
. Параметры DeviceInfo должны передаваться как внутренние элементы XML-элемента DeviceInfo. Дополнительные сведения о параметрах сведений об устройстве для определенных форматов вывода см. в разделе Передача параметров сведений об устройстве в модули подготовки отчетов.
- Extension
- String
[out] Расширение файла, соответствующее выходному потоку.
- MimeType
- String
[out] Тип MIME готового к просмотру отчета.
- Encoding
- String
[out] Кодировка, которая используется сервером отчетов при подготовке содержимого отчета к просмотру.
- Warnings
- Warning[]
[out] Массив объектов Warning, который описывает все предупреждения, полученные во время обработки отчета.
- StreamIds
- String[]
[out] Идентификаторы потока. Эти идентификаторы передаются в метод RenderStream(String, String, String, String, String). Их можно использовать для подготовки к просмотру внешних ресурсов (например, изображений), которые связаны с заданным отчетом.
Если используется модуль подготовки отчетов IMAGE, метод выводит пустой массив в StreamIds
.
Возвращаемое значение
Массив Byte[] отчета в указанном формате.
Примеры
Чтобы скомпилировать следующий пример кода, необходимо ссылаться на Reporting Services WSDL и импортировать определенные пространства имен. Дополнительные сведения см. в разделе Примеры компиляции и выполнения кода. В следующем примере кода отчет отрисовывается в MHTML и сохраняется в виде MHT-файла на диск.
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);
}
}
}
Комментарии
В следующей таблице показаны сведения о заголовках и разрешениях для этой операции.
Использование заголовка SOAP | (In) TrustedUserHeaderValue (In) ExecutionHeaderValue (Out) ServerInfoHeaderValue |
Необходимые разрешения в собственном режиме | На main отчет и все вложенные отчеты: ReadProperties ANDExecuteAndView |
Необходимые разрешения в режиме Интеграции с SharePoint | На main отчет и все вложенные отчеты:<xref:Microsoft.SharePoint.SPBasePermissions.ViewListItems> |
Render подготавливает обработанный отчет, связанный с выполнением отчета, указанным в заголовке ExecutionInfo . Если для обработанного отчета в состоянии выполнения нет временных snapshot, этот метод выполнит отчет (если выполнены все требования к учетным данным и параметрам), что приведет к созданию временного snapshot для состояния выполнения. Если отчет обрабатывается повторно из-за изменения значений параметров, не относящихся к запросу, создается новый временный snapshot. Дополнительные сведения о состоянии выполнения см. в разделе Определение состояния выполнения.
Если для параметров выполнения задано кэширование или snapshot выполнения, вызов Render может использовать существующую snapshot.
Если для отчета задано кэширование, а указанные значения параметров и учетные данные совпадают, кэшированную копию snapshot можно загрузить вместо фактической обработки отчета.
Если требования к учетным данным и параметрам не выполнены, этот метод возвращает ошибку.
Последующие вызовы можно Render использовать для получения дополнительных страниц отчета, если модуль подготовки отчетов поддерживает указание нескольких страниц.
Ограничение метода Render заключается в том, что выходные данные не могут быть потоковой передачей, поэтому весь файл должен находиться в памяти.
Сведения о жизненном цикле выполнения, в том числе описание шагов, необходимых для загрузки и подготовки отчета, см. в разделе Определение состояния выполнения .