Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Rendering-Erweiterung nimmt die Ergebnisse einer Berichtsdefinition, die mit den tatsächlichen Daten kombiniert wird, und rendert die resultierenden Daten in ein nutzbares Format. Die Transformation der kombinierten Daten und der Formatierung erfolgt unter Verwendung einer Common Language Runtime (CLR)-Klasse, die implementiert IRenderingExtension. Dadurch wird das Objektmodell in ein Ausgabeformat umgewandelt, das von einem Betrachter, Drucker oder einem anderen Ausgabeziel konsumiert werden kann.
Die hat IRenderingExtension drei Methoden, die codiert werden müssen:
Render - den Bericht abgeben.
RenderStream - rendert einen bestimmten Strom aus dem Bericht.
GetRenderingResource - erhält zusätzliche Informationen, die für den Bericht benötigt werden, wie zum Beispiel Symbole.
Die folgenden Abschnitte behandeln diese Methoden ausführlicher.
Rendermethode
Die Methode Render enthält Argumente, die die folgenden Objekte repräsentieren:
Der Bericht, den Sie erstellen möchten. Dieses Objekt enthält Eigenschaften, Daten und Layout-Informationen für den Bericht. Der Report ist die Wurzel des Modellbaums des Report Object Model.
Die ServerParameters , die das String-Dictionary-Objekt enthalten, mit den Parametern für den Berichtsserver, falls vorhanden.
Der deviceInfo-Parameter , der die Geräteeinstellungen enthält. Weitere Informationen finden Sie unter Einstellungen für Geräteinformationen zu Rendering-Erweiterungen.
Der clientCapabilities-Parameter , der ein NameValueCollection Dictionary-Objekt enthält, das Informationen über den Client enthält, auf den du renderst.
Der RenderProperties-Parameter , der Informationen über das Renderergebnis enthält.
Der createAndRegisterStream ist eine Delegiertenfunktion, die aufgerufen werden soll, um einen Stream zum Rendern zu erhalten.
deviceInfo-Parameter
Der deviceInfo-Parameter enthält Rendering-Parameter, keine Berichtsparameter. Diese Rendering-Parameter werden an die Rendering-Erweiterung weitergegeben. Die deviceInfo-Werte werden vom Berichtsserver in ein NameValueCollection Objekt umgewandelt. Elemente im deviceInfo-Parameter werden als kleinschreibungsunempfindliche Werte behandelt. Wenn die Renderanfrage als Ergebnis des URL-Zugriffs erfolgte, werden die URL-Parameter im Formular rc:key=value im deviceInfo-Dictionary-Objekt in Key/Value-Paare umgewandelt. Der Browser-Erkennungscode liefert außerdem folgende Elemente im clientCapabilities-Wörterbuch : EcmaScriptVersion, JavaScript, MajorVersion, MinorVersion, Win32, Type und AcceptLanguage. Die Rendering-Erweiterung ignoriert jedes Name/Wert-Paar im deviceInfo-Parameter , das sie nicht versteht. Das folgende Codebeispiel zeigt eine Beispielmethode GetRenderingResource , die Icons abruft:
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-Methode
Die Methode RenderStream rendert einen bestimmten Strom aus dem Bericht. Alle Streams werden während des Erstaufrufs Render erstellt, aber die Streams werden nicht direkt an den Client zurückgegeben. Diese Methode wird für sekundäre Streams verwendet, wie Bilder in HTML-Rendering oder andere Seiten einer mehrseitigen Rendering-Erweiterung wie Image/EMF.
GetRenderingResource-Methode
Die Methode GetRenderingResource ruft die Informationen ab, ohne eine vollständige Darstellung des Berichts auszuführen. Es gibt Situationen, in denen der Bericht Informationen benötigt, die der Bericht selbst nicht ergeben müssen. Wenn Sie zum Beispiel das Symbol benötigen, das mit der Rendering-Erweiterung verbunden ist, verwenden Sie den deviceInfo-Parameter mit dem einzelnen Tag-Icon<>. In diesen Fällen können Sie die Methode GetRenderingResource nutzen.