Jak použít vlastní sestavení nebo vložený kód ve službě Reporting Services

SQL Server podporu hlasu sloupce

Jak použít vlastní sestavení nebo vložený kód ve službě Reporting Services

Chcete-li upravit tento sloupec vašim potřebám, chceme pozvat sdělit své nápady o tématech, které zajímají je a problémy, které chcete zobrazit adresovány v budoucnu články znalostní báze a podpora hlasové sloupce. Můžete odeslat nápady a názor pomocí formuláře Požádat pro něj . Je také odkaz na formulář v dolní části tohoto sloupce.
Vítej zpět! Jsem Sandy Yakob s Microsoft SQL Server obsahu týmu. Jsem váš hostess pro SQL Server podporu hlasu sloupce. Rychlá poznámka o mně: I s aplikací Microsoft byly 14 let. V posledních třech letech I pracovaly s SQL Server obsahu týmu.


Pro tento měsíc sloupec John Sirmon vám nabídne kroky Chcete-li použít vlastní sestavení nebo vložený kód v SQL Server 2000 Reporting Services a SQL Server 2005 Reporting Services. V tomto článku byla navržena tak, abyste si základní kroky, jak a používat vlastní sestavení v Reporting Services. John je pracovník technické podpory eskalace s týmu podpora SQL Developer společnosti Microsoft a od března 2001 pracoval pro společnost Microsoft. On pracoval s SQL Server pro více než 10 let a má rozsáhlý rozvoj zkušeností s Microsoft Visual Studio. John je držitelem stupně B. S. v Business Administration z The Citadel. Rovněž držitelem certifikace Microsoft Certified řešení Developer (MCSD) a certifikace Microsoft Certified databáze správce (MCDBA). Doufám, že požívají sloupce a užitečné.

Vytvořit vlastní sestavení

Chcete-li vytvořit vlastní sestavení, postupujte takto:
  1. Vytvoření knihovny třídy Visual Studio. V nabídce soubor přejděte na příkaz Nový, přejděte na projekta potom klepněte na tlačítko Knihovny tříd.
  2. Zadejte název a umístění. Například používá SimpleClassLibrary a C:\Documents and Settings\user1\My Documents\Visual Studio 2005\projects.
  3. Otevřete soubor třídy (v mém případě Class1.vb) a potom vytvořit funkce, které chcete používat ve službě Reporting Services. V mém případě stačí vytvořit jednu jednoduchou funkci sdílené.

    Poznámka: Protože sdílené funkce (statické v jazyce C#), nemáme přístup pomocí instance objektu. Mějte na paměti to má vliv na způsob můžeme odkazovat na naše sestavení dále v tomto článku.
    Public Class Class1
    Public Shared Function DoSomething() As String
    Return "string data returned from custom assembly"
    End Function

    End Class

  4. Po dokončení přidávání veškerý kód sestavení nabídce klepněte na příkaz Sestavit SimpleClassLibrary . Tento krok vytvoří sestavení nebo spravované dll ve složce bin odpovídajících. V tomto příkladu vytvořena tento krok Moje sestavení SimpleClassLibrary.dll ve složce My Documents\Visual Studio 2005\Projects\ SimpleClassLibrary\bin\Debug.

Zkopírujte vlastní sestavení do složky služby SQL Reporting Services

Zpřístupnit vaše sestavení návrháře sestav a Server sestav ve službě Reporting Services. Chcete-li to provést, je třeba zkopírovat vaše DLL složky návrháře sestav a složky serveru sestav.

Poznámka: Cesta může být trochu liší v závislosti na Instalační cesta.
  • Pro Reporting Services 2005 zkopírujte knihovny DLL do následující složky:
    • Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies.
    • Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
  • Pro Reporting Services 2000 zkopírujte knihovny DLL do následující složky:
    • Program Files\Microsoft SQL Server\80\Tools\Report Designer
    • Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin
Poznámka: Protože máte proveďte tento při každé změně kód, může být poněkud únavné. Mnoho vývojáři vytvořit dávkové soubory ke zpracování tohoto úkolu. Zde je ukázkový dávkový soubor, který můžete použít.
@ECHO OFFREM   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"

I obvykle zpracovat tento úkol tak, že vytvoříte vlastní události po sestavení v projektu. Chcete-li to provést, přejděte do vlastností projektu. Dále klepněte na kartu Kompilovat a potom klepněte na tlačítko Sestavit události. Otevře se dialogové okno Události sestavení . Zvolte Příkazový řádek události po sestavenía potom zadejte následující příkaz:
kopie "$(TargetPath)" "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\"
Kopírovat "$(TargetPath)" "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\"
Toto makro post-build používá k určení umístění Moje sestavení. Další informace o vytvoření události po sestavení naleznete následujícím webu Microsoft Developer Network (MSDN):

Přidání odkazu na vlastní sestavení v Reporting Services

Chcete-li přidat odkaz na vaše vlastní sestavení, otevřete sestavu služby Reporting Services v Návrhář sestav. Chcete-li to provést, postupujte takto:
  1. Otevřete sestavu, která bude odkazovat vlastní sestavení.
  2. V nabídce sestavy klepněte na příkaz Vlastnosti sestavy.
  3. V dialogovém okně Vlastnosti sestavy klepněte na kartu odkazy .
  4. Ve skupinovém rámečku odkazyklepněte na tlačítko se třemi tečkami (...), který je vedle záhlaví sloupce název sestavení .



    Poznámka: V části třídy je pouze pro členy založené na instanci. Není pro statické členy. Statické (také označovány jako "sdílené" v některé z našich dokumentace služby Reporting Services) znamená, že člen je k dispozici pro každou instanci třídy a všechny instance používá stejné umístění úložiště. Statické členy jsou deklarovány pomocí sdílené klíčové slovo v jazyce Microsoft Visual Basic a v jazyce C# klíčové slovo static. To může být trochu matoucí. To znamená, pokud vaše vlastní sestavení obsahuje členy instance, které potřebujete získat přístup, je nutné zadat název třídy a název instance v části třídy . Protože metodu, kterou jsem bude volání ze služby Reporting Services byl definován jako statický pomocí sdílené klíčové slovo v jazyce Visual Basic, zobrazí části odkazy použít namísto oddílu třídy .
  5. V dialogovém okně Přidat odkazy klepněte na tlačítko Procházet. (V SQL Server 2005, klepněte na kartu Procházet .)
  6. Vyhledejte a klepněte na vlastní sestavení. Klepněte na tlačítko Otevřít. (V SQL Server 2005, klepněte na tlačítko Přidat namísto Otevřít.)
  7. V dialogovém okně Přidat odkazy klepněte na tlačítko OK.
  8. V dialogovém okně Vlastnosti sestavy klepněte na tlačítko OK.
Nyní jsme připraveni použít vlastní sestavení Reporting Services.
  1. Otevřete sestavu (soubor RDL) v Návrhář sestav.
  2. Chcete-li ukazují, jak použít vlastní sestavení Reporting Services, přidejte textové pole. Chcete-li to provést, prázdné textové pole z panelu nástrojů přetáhněte do sestavy.
  3. V vlastnosti textového pole klepněte na hodnotu vlastnosti a pak volání funkce pomocí následující syntaxe.
    =ClassLibraryName.ClassName.MethodName or Namespace.ClassName.MethodName
    V tomto příkladu bylo určeno.
    =SimpleClassLibrary.Class1.DoSomething()
    Jiné formáty jsou používány jako odkazy kódu ve službě Reporting Services. Například použijte následující formát při volání vloženého kódu.
    =Code.MethodName()
    Při volání nestatické nebo na základě instance, metoda z v rámci vlastní sestavení pomocí instance, použijte následující formát.
    =Code.InstanceName.Method
    Poznámka: Jste by nastavili váš odkaz jinak Pokud jste chtěli použít metodu na základě instance. Chcete-li to provést, je by přejděte do Vlastnosti sestavy, klepněte na kartu odkazy a pak zadejte název třídy a název instance v části třídy .

Pokud vlastní sestavení vyžaduje další oprávnění zabezpečení přístupu ke kódu

Pokud vlastní sestavení vyžaduje více oprávnění než výchozí úrovně oprávnění pro spuštění, musíte provést některé změny zabezpečení přístupu kódu. Pokud dojde k oprávnění problém se zabezpečením přístupu kódu, pravděpodobně uvidíte "#Error" z vaší vlastní sestavení namísto očekávané výsledky. Několik rychlých kroků, které můžete provést k určení, pokud k tomuto problému dochází a podrobné pokyny, jak vaše vlastní sestavení udělit další oprávnění klepněte na následující číslo článku databáze Microsoft Knowledge Base:
842419 jak udělit oprávnění vlastní sestavení, který je odkazován v sestavě ve službě Reporting Services

Poznámka: Tento postup je test k určení, pokud se vyskytnou problémy se zabezpečením přístupu kódu. Nedoporučujeme použít následující postup, protože uděluje oprávnění úplný vztah důvěryhodnosti pro vaše vlastní sestavení.



Vytvořit nové CodeGroup pro vaše vlastní sestavení a potom udělit oprávnění úplný vztah důvěryhodnosti. Chcete-li to provést, otevřete soubor Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\rssrvpolicy.config a přidejte následující kód.
<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>

Doporučujeme vytvořit zvláštní oprávnění nastavit namísto přiřazení tohoto oprávnění nastavit na skupiny kódu. Tento článek je určené k vám a spuštěna s vlastní sestavení a to vyžaduje více podrobností.

Poznámka: Vlastní sestavení často pracují v Návrhář sestav. Však může být, že při nasazení a potom zkuste spustit vlastní sestavení v sestavě Server, výchozí úrovně oprávnění pro spuštění nejsou dostatečné. Důvodem je ve výchozím nastavení, Návrhář sestav spustí vlastní sestavení s oprávněními "FullTrust". Při nasazení sestavy na serveru sestav, výchozí oprávnění, která je poskytnuta v Server sestav nastavena na úroveň spuštění. Pokud nastane tento problém, s největší pravděpodobností uvidíte "#Error" v ovládacím prvku sestavy namísto očekávané výsledky z vlastní sestavení.

Vložený kód

Vložený kód je kód, který je zapsán v části kódu v dialogovém okně Vlastnosti sestavy . Vložený kód je vhodný pro kód, který bude volán několikrát v rámci sestavy. Pokud chcete znovu použít kód ve více sestav, vlastní sestavení je pravděpodobně lepší volbou. Vytvoření vložené funkce, postupujte takto:
  1. V nabídce sestavy klepněte na příkaz Vlastnosti sestavy.
  2. V dialogovém okně Vlastnosti sestavy klepněte na kartu kód
  3. Přidat následující funkce a potom klepněte na tlačítko OK.
    Public Function EmbeddedFunction() as String Return "this is from embedded code function"
    End Function

  4. Do sestavy přidáte nové textové pole.
  5. Přidejte následující hodnotu vlastnosti.
    =code.EmbeddedFunction
Chtěl bych Děkujeme Jan za jeho tvrdou práci v tomto článku. He má hlouběji zkušenosti v serveru SQL Server a několik jazyků Microsoft Development a požívá pracovat se zákazníky a řešení složité problémy. Doufáme, že během tohoto měsíce téma! Děkujeme za čtení! Jako vždy pocit volného odeslat nápady na témata, které chcete v budoucnu adresovány sloupce nebo znalostní báze Knowledge Base pomocí formuláře Požádat pro něj .
Vlastnosti

ID článku: 920769 - Poslední kontrola: 9. 1. 2017 - Revize: 1

Váš názor