Interfejs IRenderingExtension wykonania
Jak opisano wcześniej w tej sekcji, rozszerzenie renderujące jest odpowiedzialny za podejmowanie wynika z definicja raportu, który jest połączony z rzeczywistymi danymi i renderowania uzyskane dane w formacie, który jest użyteczny.transformacja połączonych danych i formatowanie jest wykonywane za pomocą klasy wspólnego (CLR) w czasie wykonywania języka, która implementuje Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension, który przekształca modelu obiektowego w konsumpcyjne format danych wyjściowych przez przeglądarki, drukarki lub innych docelowe wyjścia.
The Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension has three methods that must be coded.Są to:
metoda renderowania - pozwala w raporcie.
Metoda RenderStream - renderuje określonych strumienia z raportu.
Metoda GetRenderingResource - pobiera informacje dodatkowe, takie jak ikon, potrzebne do raportu.
W poniższych sekcjach omówiono te metody bardziej szczegółowo.
metoda renderowania
The Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension.Render metoda contains arguments that represent the following objects:
The report itself that you want to render.Ten obiekt zawiera informacje dotyczące właściwości, danych i układu dla raportu.Raport jest katalog główny drzewa modelu obiektu raportu.
The reportServerParameters containing the ciąg dictionary object, with the parameters for the serwer raportów, if any.
The deviceInfo parameters containing the device settings.Aby uzyskać więcej informacji na temat ustawień urządzeń Zobacz Ustawienia informacji o urządzeniu usług Reporting Services.
The clientCapabilities parameter which contains a NameValueCollection dictionary object that has information about the klient to which you are rendering.
The EvaluateHeaderFooterExpressions delegate is called if the strona header or the footer is dependent on the contents of the strona.Oznacza to ma czasu, gdy nagłówek lub stopkę zawiera sumy lub agregację danych zawartych w raporcie.Aby uzyskać więcej informacji na temat tego obiektu delegowanego zobacz EvaluateHeaderFooterExpressions Obiekt delegowany w dokumentacji programu SQL Server Books Online.
The createAndRegisterStream is a delegate funkcja to be called to get a stream to render into.
deviceInfo parametr
The deviceInfo contains rendering parameters, not report parameters.Te parametry renderowania są przekazywane do rozszerzenie renderujące.The deviceInfo values are converted into a NameValueCollection object by the serwer raportów.Elementy w deviceInfo parametr są traktowane jako wartości bez uwzględniania wielkości liter.Jeśli w wyniku zastosowania do adresów URL, parametry adresu URL w formularzu żądania renderowania rc:key=value są konwertowane na par klucz/wartość deviceInfo słownik obiektu.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 , które nie zostały zrozumiane przez rozszerzenie renderujące jest ignorowana.Poniższy przykład kodu pokazuje przykład Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension.GetRenderingResource Metoda, która pobiera 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
TheMicrosoft.ReportingServices.OnDemandReportRendering.IRenderingExtension.RenderStream method renders a particular stream from the report.Wszystkie strumienie są tworzone podczas wstępnego Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension.Render wywołanie, ale strumieni nie są zwracane do klient początkowo. Ta metoda jest używane do pomocniczego strumieni (takich jak obrazy w renderowania HTML) lub dodatkowe strona rozszerzenie renderujące wielostronicowe (np. obraz/EMF).
Metoda GetRenderingResource
Brak godziny, jeśli jest wymagane informacje, które nie jest wymagane w raporcie mają być odwzorowane sam raport.Na przykład ikony skojarzonej rozszerzenie renderujące, należy użyć deviceInfo parametr zawierający jednego ze znacznikiem**<Ikona>**. W takich przypadkach można użyć Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension.GetRenderingResource Metoda. Ta metoda pobiera informacje bez wykonywania renderowania całego raportu.
Klasy dodatkowej do implementacja lub Zastąp
W hierarchii dziedziczenia raportu Microsoft.ReportingServices.OnDemandReportRendering.ReportItem Klasa jest abstrakcyjną klasą bazową reprezentuje pojedynczy element w raporcie. Jest klasą podstawową dziedziczące klasy, reprezentujący bardziej szczegółowych obiektów w raporcie, takie jak:
DataRegion
Obraz (również dziedziczy interfejs Microsoft.ReportingServices.OnDemandReportRendering.IImage)
Textbox
Wykresy liniowe
Subreport
PageSection
Rectangle
Z DataRegion klasy, następujące klasy są dalsze dziedziczonych:
Chart
Miernik
Tablix