Udostępnij za pośrednictwem


Implementowanie interfejsu IRenderingExtension

Rozszerzenie renderowania pobiera wyniki z definicja raportu jest połączone z danymi rzeczywistymi i wynikowe dane do formatu, który jest niemożliwe.transformacja połączonych danych i formatowania jest wykonywane przy użyciu wspólnej klasy runtime (CLR) języka, który implementuje IRenderingExtension.Model obiektów to transformuje zużywalne przez przeglądarki, drukarka lub innych danych wyjściowych jest format wyjściowy miejsce docelowe.

IRenderingExtension Ma trzy metody, które muszą być kodowane:

W następujących sekcjach omówiono metody te bardziej szczegółowo.

Metody renderowania

Render metoda zawiera argumenty, które reprezentują następujące obiekty:

  • report , Którą chcesz renderowania.Ten obiekt zawiera informacje dotyczące właściwości, danych i układu raportu.Raport jest katalog główny drzewa modelu obiektu raportu.

  • ServerParameters Ciąg obiektu dictionary, parametry zawierają serwer raportów, ewentualne.

  • deviceInfo Parametr zawierające ustawienia urządzenia.Aby uzyskać więcej informacji, zobacz Ustawienia informacji o urządzeniu usług Reporting Services.

  • clientCapabilities Parametr, który zawiera NameValueCollection obiektu dictionary, który zawiera informacje dotyczące klient, do którego są renderowania.

  • RenderProperties Zawiera informacje na temat wyników renderingu.

  • createAndRegisterStream Jest pełnomocnikiem funkcja zwany pobrać strumienia do renderowania do.

Parametr deviceInfo

deviceInfo Parametr zawiera parametry renderowania nie raportu parametrów.Parametry te świadczenia są przekazywane do rozszerzenie renderowania.deviceInfo Wartości są konwertowane na NameValueCollection obiektu serwer raportów.Elementy w deviceInfo parametr są traktowane jako przypadek-wartości niewrażliwe.Jeśli z adresu URL żądania renderowania dostęp, parametry adresu URL w postaci rc:key=value są konwertowane na par klucz/wartość deviceInfo obiektu dictionary.Kod wykrywania przeglądarki zawiera również następujące elementy w clientCapabilities Słownik: EcmaScriptVersion, JavaScript, MajorVersion, MinorVersion, Win32, typ i AcceptLanguage.Dowolne nazwa/wartość pary w deviceInfo parametr, który nie jest rozpoznawany przez rozszerzenie renderowania jest ignorowana.Poniższy przykład kodu pokazuje przykładowy GetRenderingResource metoda pobierającej ikony:

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

Metoda RenderStream

RenderStream metoda renderuje określonego strumienia z raportu.Wszystkie strumienie są tworzone podczas wstępnego Render rozmowy, ale strumienie nie są zwracane do klient początkowo.Ta metoda jest używana dla strumieni pomocnicze, takie jak obrazy renderowania HTML lub dodatkowe strona wiele stron rozszerzenie renderowania, takie jak obraz i EMF.

Metoda GetRenderingResource

GetRenderingResource Metoda pobiera informacje bez wykonywania całego renderowania z raportu.Brak czasu, gdy raport wymaga informacji, które nie wymagają sam mają być odwzorowane raport.Na przykład ikony skojarzonej rozszerzenie renderowania, należy użyć deviceInfo zawierające pojedynczy znacznik parametru <ikonę>.W takich przypadkach można użyć GetRenderingResource metoda.