Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
La extensión de representación toma los resultados de una definición de informe que se combina con los datos reales y representa los datos resultantes en un formato que se puede usar. La transformación de los datos y el formato combinados se realiza mediante una clase de Common Language Runtime (CLR) que implementa IRenderingExtension. Esto transforma el modelo de objetos en un formato de salida consumible por un visor, una impresora u otro destino de salida.
IRenderingExtension Tiene tres métodos que se deben codificar:
Render : representa el informe.
RenderStream : representa una secuencia específica del informe.
GetRenderingResource : obtiene información adicional, como iconos, que son necesarios para el informe.
En las secciones siguientes se describen estos métodos con más detalle.
Render (método)
El Render método contiene argumentos que representan los siguientes objetos:
Informe que desea representar. Este objeto contiene información de propiedades, datos y diseño para el informe. El informe es la raíz del árbol del modelo de objetos de informe.
ServerParameters que contienen el objeto de diccionario de cadenas, con los parámetros del servidor de informes, si los hay.
Parámetro deviceInfo que contiene la configuración del dispositivo. Para obtener más información, consulte Pasar la configuración de información del dispositivo a las extensiones de representación.
Parámetro clientCapabilities que contiene un NameValueCollection objeto de diccionario que tiene información sobre el cliente al que se representa.
RenderProperties que contiene información sobre el resultado de la representación.
CreateAndRegisterStream es una función de delegado a la que se va a llamar para obtener una secuencia en la que se va a representar.
Parámetro deviceInfo
El parámetro deviceInfo contiene parámetros de representación, no parámetros de informe. Estos parámetros de representación se pasan a la extensión de representación. El servidor de informes convierte los valores deviceInfo en un NameValueCollection objeto. Los elementos del parámetro deviceInfo se tratan como valores que no distinguen mayúsculas de minúsculas. Si la solicitud de representación se produjo como resultado del acceso url, los parámetros de dirección URL del formulario rc:key=value se convierten en pares clave-valor en el objeto de diccionario deviceInfo . El código de detección del explorador también proporciona los siguientes elementos en el diccionario clientCapabilities : EcmaScriptVersion, JavaScript, MajorVersion, MinorVersion, Win32, Type y AcceptLanguage. Se omite cualquier par nombre/valor en el parámetro deviceInfo que la extensión de representación no entienda. En el ejemplo de código siguiente se muestra un método de ejemplo GetRenderingResource que recupera iconos:
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 (método)
El RenderStream método representa una secuencia determinada del informe. Todas las secuencias se crean durante la llamada inicial Render , pero las secuencias no se devuelven inicialmente al cliente. Este método se usa para secuencias secundarias, como imágenes en representación HTML o páginas adicionales de una extensión de representación de varias páginas, como Image/EMF.
GetRenderingResource (método)
El GetRenderingResource método recupera la información sin ejecutar una representación completa del informe. Hay ocasiones en las que el informe requiere información que no requiere que se represente el propio informe. Por ejemplo, si necesita el icono asociado a la extensión de representación, use el parámetro deviceInfo que contiene el icono> de etiqueta< única. En estos casos, puede usar el GetRenderingResource método .
Véase también
Implementación de una extensión de representación
Introducción a las extensiones de representación