Reporting Services'da özel derlemeler veya katıştırılmış kod nasıl kullanılır

Makale çevirileri Makale çevirileri
Makale numarası: 920769 - Bu makalenin geçerli olduğu ürünleri görün.
SQL Server Destek Sesi sütunu

Reporting Services'da özel derlemeler veya katıştırılmış kod nasıl kullanılır

Bu sütun için kendi gereksinimlerinize göre özelleştirmenin sizi ilgilendiren konular hakkındaki fikirlerinizi göndermeye davet etmek isteriz ve gelecekte Knowledge Base makaleleri ve Destek Sesi sütunu görmek istediğiniz sorunlar giderilmiştir. Kendi fikirleri ve Ask For It formunu kullanarak geri besleme gönderebilirsiniz. Formun alt kısmındaki bu sütunun. bağlantı da orada
Hepsini aç | Hepsini kapa

Bu Sayfada

Tekrar hoş geldiniz! Microsoft SQL Server içerik ekibiyle Sandy Yakob olduğum. SQL Server Destek Sesi sütunu için sizin hostess olduğum. Bana hakkında hızlı BIR Not: ı Microsoft'a 14 yıllara ait olduğu. Geçmiş üç yıl için ı SQL Server içerik ekibiyle çalışma.

Bu ayın sütun için bir özel bir derleme veya SQL Server 2000 Reporting Services ve SQL Server 2005 Reporting Services katıştırılmış kod kullanmak için bu adımları Gamze Sirmon sağlayacaktır. Bu makalede, almak için temel adımlar ve çalışan özel bir derlemesi ile Reporting Services'da vermek için tasarlanmıştır. Gamze Microsoft'taki SQL geliştirici destek ekibi ile bir destek yükseltme mühendisi, Microsoft bu yana Mart 2001 çalışmıştır. SQL Server ile birlikte çalıştığı 10 yıldır ve Microsoft Visual Studio deneyimini kapsamlı geliştirme vardır. Gamze, B S. VM'de bir The Citadel ile gelen Business yönetim tutar. Kendisine de bir Microsoft Certified Solution Developer (MCSD) sertifika ve MCDBA (Microsoft Certified veritabanı yöneticisi) bir sertifika içerir. Sütun keyfini çıkarın ve yararlı Umarım.

Özel bir derleme

Özel bir derleme oluşturmak için aşağıdaki adımları izleyin:
  1. Visual Studio'nun sınıf kitaplığı oluşturun. Dosya) menüsünde, Yeni ' nin üzerine gelin, sonra da Project işaret ve Sınıf kitaplığı</a1>'ı tıklatın.
  2. Ad ve konum belirtin. Örneğin, SimpleClassLibrary ve C:\Documents and Settings\user1\My Documents\Visual Studio 2005\projects kullandım.
  3. (Durumda benim Class1.vb) Class dosyasını açın ve sonra Reporting Services'da kullanmak istediğiniz bir işlev oluşturun. Bana bir durumda, yalnızca basit bir paylaşılan işlevi oluşturabilirim.

    Not Bu paylaşılan bir işlevi (C# statik) olduğundan, biz kullanılarak oluşturulmuş bir nesneye erişmek sahip değilsiniz. Bu bizim derlemede makalenin sonraki bölümlerinde nasıl biz başvuru üzerinde bir etkisi gibi bu unutmayın.
    Public Class Class1
    
        Public Shared Function DoSomething() As String
            Return "string data returned from custom assembly"
        End Function
    
    End Class
    
  4. Tüm kod ekleme işlemini tamamladıktan sonra Yapı SimpleClassLibraryOluştur) menüsünde tıklatın. Bu adım, yönetilen bir .dll ya da derleme ilgili depo klasörü oluşturur. Bana bir örnekte, bu adımı benim derleme SimpleClassLibrary.dll (My Documents\Visual Studio 2005\Projects\ SimpleClassLibrary\bin\Debug klasöründe oluşturulur.

Özel derleme SQL Reporting Services'i klasörlere kopyalayın...

Bilgisayarınızı derleme Report Designer ve Reporting Services Report Server kullanımına. Bunu yapmak için <a0></a0>, kendi .dll Report Designer klasörüne ve Report Server klasörüne kopyalamanız gerekir.

Not Yol, yükleme yolu bağlı olarak biraz farklı olabilir.
  • Reporting Services 2005, .dll aşağıdaki klasörlere kopyalayın:
    • Program Files\Microsoft Visual Studio'nun 8\Common7\IDE\PrivateAssemblies
    • Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin program
  • Reporting Services 2000'de, .dll aşağıdaki klasörlere kopyalayın:
    • Program Files\Microsoft SQL Server\80\Tools\Report Tasarımcısı
    • Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin program
Not Bu her zaman kodu değiştirme yapmak sahip olduğundan, bir bit sıkıcı olabilir. Birçok geliştiriciler bu görevi gerçekle?tirmek için toplu iş dosyaları oluşturun. Işte bir örnek toplu iş dosyası use.
@ECHO OFF
REM   Name: SRSDeploy.bat
REM
REM   This batch files copies my custom assembly to my Reporting Services folders.
REM   Run this from the directory where the customer assembly was compiled.
REM   Be sure to close any applications that have your custom assembly open. 
REM
REM   This is the SQL Server 2005 version:
copy SimpleClassLibrary.dll "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies"  
copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin" 
REM This is the SQL Server 2000 version:
REM copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\80\Tools\Report Designer"
REM copy SimpleClassLibrary.dll "C:\Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin"
ı genellikle bu görevi kullandığım bir projede özel bir post-build olay oluşturarak tanıtıcı. Bunu yapmak için <a0></a0>, projenizin özelliklerine gidin. Sonra derleme</a1> sekmesini ve sonra Olayları oluştur) tıklatın. Bu Olayları oluştur iletişim kutusunu açar. Post-Build olay komut satırı'nı seçin ve sonra aşağıdakini yazın:
kopya "(TargetPath) $" "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\"
"$ (TargetPath)" "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\" kopyalama
Bu işlem post-build makro benim derleme konumunu belirtmek için kullanır. Post-build olaylar oluşturma hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/42x5kfw4.aspx

Reporting Services içinde özel derlemesine ekleyerek

Kendi özel derlemesine eklemek için <a0></a0>, rapor Tasarımcısı'nda Raporlama Servisleri raporunu açın. Bunu yapmak için şu adımları izleyin:
  1. Özel bir derleme başvurusu raporu açın.
  2. Rapor menüsünden Rapor özellikleri ' ni tıklatın.
  3. Rapor özellikler iletişim kutusunda, Başvurular sekmesini tıklatın.
  4. Başvurular altında derleme adı sütun başlığının yanındaki üç nokta (...) düğmesini tıklatın.

    Not Yalnızca örnek tabanlı üyeleri için sınıflar bölümdür. Için statik üyesi değil. Statik ("paylaşılan" bazı bizim Reporting Services belgelerine denir) üyesi, sınıfın her örneği için kullanılabilir ve her örneği, aynı depolama konumunu kullanan anlamına gelir. Statik bir üye, paylaşılan anahtar sözcüğü Microsoft Visual Basic ve C# statik anahtar sözcüğünü kullanarak bildirilir. Bu işlem biraz kafa karıştırıcı olabilir. Bu, kendi özel derleme erişmeniz gereken bir örnek üye içeriyorsa, sınıflar bölümünde, örnek adı ve sınıf adı belirtmeniz gerekir anlamı. BANA Reporting Services çağırma yöntemi statik Visual Basic'te, paylaşılan anahtar sözcüğünü kullanarak tanımlanmadığı için ı Başvurular bölümünde sınıfları bölüm yerine kullanacaksınız.
  5. Başvuru Ekle iletişim kutusuna Gözat ' ı tıklatın. (SQL Server 2005'te Gözat sekmesini tıklatın.)
  6. Bulun ve özel birleştirme</a1>'ı tıklatın. ' ı tıklatın. (SQL Server 2005'te yerine Ekle ' yi tıklatın.)
  7. Başvuru Ekle iletişim kutusunda, <a3>Tamam</a3>'ı tıklatın.
  8. Rapor özellikleri iletişim kutusunda, <a3>Tamam</a3>'ı tıklatın.
Biz artık özel derleme Reporting Services'da kullanmaya hazırsınız.
  1. (.Rdl dosyası) raporu, rapor Tasarımcısı içinde açın.
  2. Özel derleme Reporting Services'da nasıl göstermek için <a0></a0>, bir metin kutusu ekleyin. Bunu yapmak için <a0></a0>, boş metin kutusu araç kutusundan rapora sürükleyin.
  3. Metin kutusu özellikleri, Value özelliği tıklatın ve sonra aşağıdaki sözdizimini kullanarak bir işlev çağırın.
    =ClassLibraryName.ClassName.MethodName or Namespace.ClassName.MethodName
    Bana bir örnekte, aşağıdaki belirttiğim.
    =SimpleClassLibrary.Class1.DoSomething()
    Diğer biçimler, Reporting Services kodda başvuru olarak kullanılır. Örneğin, aradığınızda, aşağıdaki biçimi kullanın kodunu.
    =Code.MethodName()
    statik olmayan bir çağrı veya örnek tabanlı yönteminden bir örneği kullanarak özel bir derleme içinde kullanmak aşağıdaki biçimde katıştırılır.
    =Code.InstanceName.Method
    Not Bir örneği temel alan yöntemi kullanmak isterseniz, başvuru farklı ayarladığınız. Bunu yapmak için <a0></a0>, Rapor özellikleri ' ne gidin References</a1> sekmesini tıklatın ve sonra sınıfları bölümünde sınıf adını ve örnek adı belirtin.

Özel derleme ek izinler gerektiriyorsa, erişim güvenlik kodu

Özel derleme yürütme düzeyi varsayılan izinleri daha fazla izinlerinden gerektiriyorsa, bazı kod erişimi güvenlik değişiklikleri de yapmalısınız. Kod erişimi güvenlik izinleri bir sorun oluşursa, beklenen sonuçları yerine kendi özel derlemesindeki "#Error" büyük olasılıkla görürsünüz. Bu sorunun oluşmasını belirlemek için gerçekleştirebileceğiniz birkaç hızlı adımları ve kendi özel derlemesi için ek izinler vermesi hakkında ayrıntılı yönergeler için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
842419Reporting Services'i bir rapora başvurulan özel bir derleme izinleri vermek için nasıl kullanılır
Not Kod erişim güvenliği sorunları ortaya etkilenmediğinizi belirlemek için bir sınama aşağıdaki yaklaşımdır. Tam güven izinleri, özel bir derlemeye verir, çünkü, aşağıdaki yöntemi kullanmanızı önermeyiz.

Yeni bir CodeGroup için kendi özel derlemesi oluştur ve tam güven izinleri verin. Bunu yapmak için <a0></a0>, Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\rssrvpolicy.config dosyasını açın ve sonra aşağıdaki kodu ekleyin.
<CodeGroup class="UnionCodeGroup"
   version="1"
   PermissionSetName="FullTrust"
   Name="MyCodeGroup"
   Description="Code group for my data processing extension">
      <IMembershipCondition class="UrlMembershipCondition"
         version="1"
         Url="C:\pathtocustomassembly\customassembly.dll"
       />
</CodeGroup>
, Kod grubu için izin atamak yerine ayarlamak daha özel bir izin oluşturmak öneririz. Bu makalede, almak için hedeflenen ve özel derlemeler ile çalışan ve bu ayrıntılı.

Not Özel derlemeler genellikle rapor Tasarımcısı'nda bağdaştırıcımla. Ancak, dağıtmak ve sonra özel derleme'ı Report Server çalıştırmayı denediğinizde, varsayılan yürütme düzeyi izinler yetersiz olduğunu fark edebilirsiniz. Bunun nedeni, varsayılan olarak, Report Designer özel derlemeler "FullTrust" izinleriyle çalışır. Ancak, raporlarınız için rapor sunucusu dağıttığınızda Report Server verilen varsayılan izni yürütme düzeyini ayarlanır. Bu sorun oluşursa, büyük olasılıkla "#Error" özel derlemesinden beklenen sonuçları yerine <a1>rapor</a1> denetiminde görürsünüz.

Katıştırılmış kod

Katıştırılmış kod <a0>Rapor özellikleri</a0> iletişim kutusunun kod bölümünde yazılmış koddur. Katıştırılmış kod, raporunuzu içinde birkaç kez adlı kodu için iyi bir seçimdir. Birden çok rapor kodu yeniden kullanmak isterseniz, özel bir derleme büyük olasılıkla bir daha iyi seçimdir. Katıştırılmış bir işlevi oluşturmak için <a0></a0>, aşağıdaki adımları izleyin:
  1. Rapor menüsünden Rapor özellikleri ' ni tıklatın.
  2. Rapor özellikler iletişim kutusunda, kod sekmesini tıklatın...
  3. Aşağıdaki işlevi ekleyin ve Tamam ' ı tıklatın.
    Public Function EmbeddedFunction() as String
     	Return "this is from embedded code function"
    End Function
    
  4. Bu raporda, yeni bir metin kutusu ekleyin.
  5. Aşağıdaki için <a2>Value</a2> özelliği ekleyin.
    =code.EmbeddedFunction
Kemal, bu makalede, sabit çalışma için teşekkür ederiz gibi. SQL Server ve çeşitli Microsoft geliştirme dilleri ayrıntılı deneyimi ve müşterilerle çalışırken ve zor sorunları çözme enjoys. Bu ay çubuğundaki konu kullanılabilen umarız! Okuma için teşekkürler! Her zaman olarak, gelecekte sütunları adreslenmiş istediğiniz konuları veya bilgi bankasının Ask For It formunu kullanarak fikir gönderme bildirmekten çekinmeyin.

Özellikler

Makale numarası: 920769 - Last Review: 26 Ocak 2007 Cuma - Gözden geçirme: 1.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2005 Reporting Services
  • Microsoft SQL Server 2000 Reporting Services
Anahtar Kelimeler: 
kbmt kbhowto KB920769 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:920769

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com