다음을 통해 공유


IRenderingExtension 인터페이스 구현

렌더링 확장 프로그램은 실제 데이터와 결합된 보고서 정의의 결과를 가져와 결과 데이터를 사용할 수 있는 형식으로 렌더링합니다. 결합된 데이터의 변환과 형식 지정은 IRenderingExtension을 구현하는 CLR(공용 언어 런타임) 클래스를 사용하여 수행됩니다. 이렇게 하면 개체 모델이 뷰어, 프린터 또는 기타 출력 대상에서 사용할 수 있는 출력 형식으로 변환됩니다.

코딩 IRenderingExtension 해야 하는 세 가지 메서드가 있습니다.

  • Render - 보고서를 렌더링합니다.

  • RenderStream - 보고서에서 특정 스트림을 렌더링합니다.

  • GetRenderingResource - 보고서에 필요한 추가 정보(예: 아이콘)를 가져옵니다.

다음 섹션에서는 이러한 메서드에 대해 자세히 설명합니다.

Render 메서드

Render 메서드에는 다음 개체를 나타내는 인수가 포함됩니다.

  • 렌더링할 보고서입니다. 이 개체에는 보고서에 대한 속성, 데이터 및 레이아웃 정보가 포함됩니다. 보고서는 보고서 개체 모델 트리의 루트입니다.

  • 보고서 서버에 대한 매개 변수(있는 경우)와 함께 문자열 사전 개체를 포함하는 ServerParameters입니다.

  • 디바이스 설정을 포함하는 deviceInfo 매개 변수입니다. 자세한 내용은 렌더링 확장 프로그램에 디바이스 정보 설정 전달을 참조 하세요.

  • 렌더링할 클라이언트에 대한 정보가 있는 사전 개체를 포함하는 NameValueCollection clientCapabilities 매개 변수입니다.

  • 렌더링 결과에 대한 정보를 포함하는 RenderProperties 매개 변수입니다.

  • createAndRegisterStream은 렌더링할 스트림을 가져오기 위해 호출할 대리자 함수입니다.

deviceInfo 매개 변수

deviceInfo 매개 변수에는 보고서 매개 변수가 아닌 렌더링 매개 변수가 포함되어 있습니다. 이러한 렌더링 매개 변수는 렌더링 확장 프로그램에 전달됩니다. deviceInfo 값은 보고서 서버에서 NameValueCollection 개체로 변환됩니다. deviceInfo 매개 변수의 항목은 대/소문자를 구분하지 않는 값으로 처리됩니다. 렌더링 요청이 URL 액세스의 결과로 제공된 경우 양식 rc:key=value 의 URL 매개 변수는 deviceInfo 사전 개체의 키/값 쌍으로 변환됩니다. 또한 브라우저 검색 코드는 clientCapabilities 사전에 EcmaScriptVersion, JavaScript, MajorVersion, MinorVersion, Win32, Type 및 AcceptLanguage 항목을 제공합니다. 렌더링 확장 프로그램은 deviceInfo 매개 변수에서 이해하지 못하는 이름/값 쌍을 무시합니다. 다음 코드 샘플에서는 아이콘을 검색하는 샘플 GetRenderingResource 메서드를 보여 줍니다.

public void GetRenderingResource (CreateStream createStreamCallback, NameValueCollection deviceInfo)  
{  
    string[] iconTagValues = deviceInfo.GetValues("Icon");  
    if ((iconTagValues != null) && (iconTagValues.Length > 0) )  
    {  
        // Create a stream to output to.  
        Stream outputStream = createStreamCallback(m_iconResourceName, "gif", null, "image/gif", false);  
        // Get the GIF image for one of the buttons on the toolbar  
        Image requiredImage = (Image) m_resourcemanager.GetObject(m_iconResourceName  
        // Write the image to the output stream  
        requiredImage.Save(outputStream, requiredImage.RawFormat);  
    }  
    return;  
}  

RenderStream 메서드

RenderStream 메서드는 보고서에서 특정 스트림을 렌더링합니다. 모든 스트림은 초기 Render 호출 중에 만들어지지만 스트림은 처음에 클라이언트에 반환되지 않습니다. 이 메서드는 HTML 렌더링의 이미지 또는 이미지/EMF와 같은 다중 페이지 렌더링 확장 프로그램의 다른 페이지와 같은 보조 스트림에 사용됩니다.

GetRenderingResource 메서드

이 메서드는 GetRenderingResource 보고서의 전체 렌더링을 실행하지 않고 정보를 검색합니다. 보고서에 보고서 자체를 렌더링할 필요가 없는 정보가 필요한 경우가 있습니다. 예를 들어, 렌더링 확장 프로그램과 연결된 아이콘이 필요한 경우 단일 태그 <Icon>을 포함하는 deviceInfo 매개 변수를 사용합니다. 이러한 경우 GetRenderingResource 메서드를 사용할 수 있습니다.