Aracılığıyla paylaş


IRenderingExtension arabirimi uygulama

Daha önce bu bölümde açıklandığı gibi işleme uzantısı gerçek veri ile birlikte bir rapor tanımı sonuçlar almak sorumludur ve sonuçlar verileri bir biçimde, işleme kullanım.Birleştirilmiş veri dönüştürme ve biçimlendirme kullanan bir ortak dil çalışma zamanı (CLR) arabirim yapılır Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension, hangi nesne modeli bir çıktı biçimi consumable içinde bir Görüntüleyici, yazıcı veya başka bir çıkış hedefi dönüştürür.

The Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension has three methods that must be coded.Bunlar şunlardır:

  • Yöntem oluşturma - raporu oluşturur.

  • RenderStream yöntem - belirli bir akış raporundan işler.

  • GetRenderingResource yöntem - ek bilgi için simgeleri, rapor için gerektiği gibi alır.

Aşağıdaki bölümlerde bu yöntemlerin daha ayrıntılı olarak ele almaktadır.

Yöntem oluşturma

The Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension.Render yöntem contains arguments that represent the following objects:

  • The report itself that you want to render.Bu nesne, rapor özellikleri, veri ve düzen bilgilerini içerir.Rapor nesne modeli ağacının kökünü rapordur.

  • The reportServerParameters containing the dize dictionary object, with the parameters for the rapor sunucusu, if any.

  • The deviceInfo parameters containing the device settings.Aygıt ayarları hakkında daha fazla bilgi için bkz: Reporting Services Aygıt Bilgisi Ayarları.

    The clientCapabilities parameter which contains a NameValueCollection dictionary object that has information about the istemci to which you are rendering.

  • The EvaluateHeaderFooterExpressions delegate is called if the sayfa header or the footer is dependent on the contents of the sayfa.Diğer bir deyişle, üstbilgi veya altbilgiyi toplamları veya raporda bulunan veri toplama içerdiğinde zamanları yok.Bu temsilci üzerinde daha fazla bilgi için bkz: EvaluateHeaderFooterExpressions SQL Server Çevrimiçi Kitapları'nda temsilci.

  • The createAndRegisterStream is a delegate işlev to be called to get a stream to render into.

Parameter deviceInfo

The deviceInfo contains rendering parameters, not report parameters.Bu işleme parametrelerini işleme uzantısı için geçirilir.The deviceInfo values are converted into a NameValueCollection object by the rapor sunucusu.Bulunan öğeler deviceInfo parametresi büyük/küçük durum duyarlı olmayan değerler olarak kabul edilir.Oluşturma isteği sonucunda, URL erişim, URL Parametreler formunda geldiyse rc:key=value anahtar/değer çiftleri olarak dönüştürülür deviceInfo sözlük nesnesi.Tarayıcı algılama kodu aşağıdaki öğeleri de sağlar. clientCapabilities sözlük: EcmaScriptVersion, JavaScript, AnaSürüm, Ikincilsürüm, Win32, tür ve AcceptLanguage. Tüm ad/değer çiftinin deviceInfo işleme uzantısı tarafından anlaşılan, göz ardı edilir.Aşağıdaki kod örneği bir örnek göstermektedir. Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension.GetRenderingResource yöntem simgeleri alır.

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 yöntem

TheMicrosoft.ReportingServices.OnDemandReportRendering.IRenderingExtension.RenderStream method renders a particular stream from the report.Tüm akışlar sırasında ilk yeniden oluşturulur Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension.Render Çağrı, ancak akışları istemciye başlangıçta dönmedi. Bu yöntem, ikincil için kullanılan akış (gibi HTML işlenişi görüntüler) veya başka bir sayfa (/ EMF resim) gibi bir çok sayfalı bir işleme uzantısı olur.

GetRenderingResource yöntem

Saatler, raporun rapor kendisini işlenecek gerektirmeyen bilgi gerektirir. vardır.Örneğin, bir işleme uzantısı ile ilişkili simgeyi gereksinim duyarsanız, kullanın deviceInfo parametre tek içeren etiketi**<Simge>**. Bu gibi durumlarda, kullanabileceğiniz Microsoft.ReportingServices.OnDemandReportRendering.IRenderingExtension.GetRenderingResource yöntem. Bu yöntem, raporun tüm bir işleme çalıştırmadan bilgileri alır.

Gerçekleştir veya geçersiz kılma ek sınıfları

Özet Tablo raporu, devralma hiyerarşisindeki Microsoft.ReportingServices.OnDemandReportRendering.ReportItem sınıf tek gösteren Özet taban sınıftır öğe rapora. Daha ayrıntılı rapora nesneleri temsil eden sınıf, devralan bir temel sınıf gibi olur:

  • DataRegion

  • Resim (arabiriminden de devralır Microsoft.ReportingServices.OnDemandReportRendering.IImage)

  • Textbox

  • Line

  • Subreport

  • PageSection

  • Rectangle

Gelen DataRegion sınıfı, aşağıdaki sınıfları daha fazla devralınan:

  • Chart

  • Ölçer

  • Tablix