ReportExecutionService.Render 메서드

Processes a specific report and renders it in the specified format.

네임스페이스:  ReportExecution2005
어셈블리:  ReportExecution2005(ReportExecution2005.dll)

public byte[] Render(
	string Format,
	string DeviceInfo,
	out string Extension,
	out string MimeType,
	out string Encoding,
	out Warning[] Warnings,
	out string[] StreamIds
)

매개 변수

Format
유형: System.String
The format in which to render the report. This argument maps to a rendering extension. Supported extensions include XML, NULL, CSV, IMAGE, PDF, HTML4.0, HTML3.2, MHTML, EXCEL, and Word. A list of supported extensions may be obtained by calling the ListRenderingExtensions method.
DeviceInfo
유형: System.String
An XML string that contains the device-specific content that is required by the rendering extension specified in the Format parameter. DeviceInfo settings must be passed as internal elements of a DeviceInfo XML element. For more information about device information settings for specific output formats, see 장치 정보 설정을 렌더링 확장 프로그램에 전달.
Extension
유형: System.String%
[out] The file extension corresponding to the output stream.
MimeType
유형: System.String%
[out] The MIME type of the rendered report.
Encoding
유형: System.String%
[out] The encoding used when report server renders the contents of the report.
Warnings
유형: ReportExecution2005.Warning[]%
[out] An array of Warning objects that describes any warnings that occurred during report processing.
StreamIds
유형: System.String[]%
[out] The stream identifiers. These IDs are passed to the RenderStream method. You can use them to render the external resources (images, etc.) that are associated with a given report.If the IMAGE rendering extension is used, the method outputs an empty array in StreamIds.

반환 값

유형: System.Byte[]
A Byte[] array of the report in the specified format.

The table below shows header and permissions information on this operation.

SOAP Header Usage

(In) TrustedUserHeaderValue

(In) ExecutionHeaderValue

(Out) ServerInfoHeaderValue

Native Mode Required Permissions

On the main report and all subreports: ReadProperties AND ExecuteAndView

SharePoint Mode Required Permissions

On the main report and all subreports: ViewListItems

Render renders a processed report associated with the report execution identified in the ExecutionInfo header. If no temporary snapshot exists for the processed report in the execution state, this method will execute the report (if all credential and parameter requirements are met), resulting in a temporary snapshot being created for the execution state. If the report is reprocessed because non-query parameter values have changed, a new temporary snapshot is created. For more information on execution state, see 실행 상태 식별.

If the execution options are set to cache or execution snapshot, the call to Render may use an existing snapshot.

If the report is set to cache and the supplied parameter values and credentials match, the cached copy of the snapshot may be loaded instead of actually processing the report.

If credential and parameter requirements are not met, this method will return an error.

Subsequent calls to Render can be used to fetch additional pages of the report if the rendering extension supports specifying multiple pages.

A limitation of the Render method is that the output cannot be streamed, so the entire file must be in-memory.

Please see 실행 상태 식별 for a discussion of the execution life cycle, which includes a description of the steps necessary to load and render a report.

To compile the following code example, you must reference the Reporting Services WSDL and import certain namespaces. For more information, see Compiling and Running Code Examples. The following code example renders a report in MHTML and saves it as an .mht file to disk.

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);
        }

    }
}

커뮤니티 추가 항목

추가
표시: