Como utilizar assemblagens personalizadas ou códigos incorporados no Reporting Services

Traduções de Artigos Traduções de Artigos
Artigo: 920769 - Ver produtos para os quais este artigo se aplica.
Coluna de voz de suporte de servidor SQL

Como utilizar assemblagens personalizadas ou códigos incorporados no Reporting Services

para personalizar esta coluna às suas necessidades, pretendemos convidá-lo para submeter as suas ideias sobre tópicos que lhe interessam e problemas que pretende ver endereçados artigos de base de dados de conhecimento no futuro e colunas de voz de suporte. Pode submeter as ideias e comentários utilizando o formulário Ask For It. Também há uma hiperligação para o formulário na parte inferior desta coluna.
Expandir tudo | Reduzir tudo

Nesta página

Bem-vindo de volta! Sou Sandy Yakob com a equipa Microsoft SQL Server conteúdo. Estou a hostess das colunas de voz de suporte do SQL Server. Uma rápida nota sobre-me: tenham sido com a Microsoft 14 anos. Para os últimos três anos, tenham trabalhado à equipa do SQL Server conteúdo.

Para coluna deste mês, John Sirmon, obterá os passos para utilizar uma assemblagem personalizada ou códigos incorporados no SQL Server 2000 Reporting Services e SQL Server 2005 Reporting Services. Este artigo foi concebido para fornecer os passos básicos para ajudá-lo e em execução com uma assemblagem personalizada no Reporting Services. João é um engenheiro de escalonamento de suporte com a equipa de suporte de programação de SQL da Microsoft e trabalhou da Microsoft desde Março de 2001. Ele trabalhou com o SQL Server para mais de 10 anos e tem de desenvolvimento abrangente experimentar com o Microsoft Visual Studio. João contém um grau de S. B. na administração de negócio de Citadel O. Ele também contém uma certificação Microsoft Certified Solution Developer (MCSD) e uma certificação Microsoft Certified base de dados do administrador (MCDBA). Espero que desfrutar da coluna e ser útil.

Criar uma assemblagem personalizada

Para criar uma assemblagem personalizada, siga estes passos:
  1. Crie uma biblioteca de classe do Visual Studio. No menu ficheiro , aponte para Novo , aponte para o Project e clique em Biblioteca de classes .
  2. Especifique o nome e a localização. Por exemplo, É utilizado 2005\projects SimpleClassLibrary e C:\Documents and Settings\user1\My Documents\Visual Studio.
  3. Abrir o ficheiro de classe (no meu caso, Class1.vb) e, em seguida, criar as funções que pretende utilizar no Reporting Services. No meu caso, apenas criar uma função de partilhada simples.

    Nota Visto tratar-se uma função partilhada (estático no C#), não é necessário acedê-lo utilizando um objecto com instâncias criadas. Tenha isto em mente, este tem um efeito no modo como é fazer referência a nossa assemblagem posteriormente no artigo.
    Public Class Class1
    
        Public Shared Function DoSomething() As String
            Return "string data returned from custom assembly"
        End Function
    
    End Class
    
  4. Depois de ter terminado a adicionar todo o código, clique em Criar SimpleClassLibrary no menu de criar . Este passo cria a assemblagem ou .dll geridos na pasta respectiva posição. O exemplo, este passo criado a assemblagem, SimpleClassLibrary.dll, na pasta Os meus Documents\Visual Studio 2005\Projects\ SimpleClassLibrary\bin\Debug.

Copie a assemblagem personalizada para as pastas SQL Reporting Services

Disponibilize a assemblagem para Report Designer e o servidor de relatórios no Reporting Services. Para efectuar este procedimento, tem de copiar a .dll para a pasta do estruturador de relatórios e para a pasta do servidor de relatórios.

Nota O caminho pode ser um pouco diferente, dependendo do caminho de instalação.
  • Para Reporting Services 2005, copie a .dll para as seguintes pastas:
    • Programa 8\Common7\IDE\PrivateAssemblies Files\Microsoft Visual Studio
    • Programa Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
  • Para Reporting Services 2000, copie a .dll para as seguintes pastas:
    • Programa Files\Microsoft SQL Server\80\Tools\Report Designer
    • C:\Programas\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin do programa
Nota Uma vez que terá este sempre que alterar o código, poderá ser um pouco entediante. Muitos programadores criar ficheiros batch para processar esta tarefa. Segue-se um ficheiro batch pode 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"
normalmente processar esta tarefa, criando um evento post-build personalizado no meu projecto. Para tal, vá para as propriedades do projecto. Em seguida, clique no separador de compilação e, em seguida, clique em Criar eventos . Este procedimento abre a caixa de diálogo Criar eventos . Escolher Post-build evento linha de comandos e, em seguida, escreva o seguinte:
cópia "$ (TargetPath)" "C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\"
Copiar "$ (TargetPath)" "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\"
Uma macro post-build este utiliza para especificar a localização do meu assemblagem. Para obter mais informações sobre como criar eventos post-build, visite o seguinte Web site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/42x5kfw4.aspx

Adicionar uma referência à assemblagem personalizado no Reporting Services

Para adicionar uma referência para a assemblagem personalizada, abra o relatório do Reporting Services no estruturador de relatórios. Para o fazer, siga estes passos:
  1. Abra o relatório fizer referência a assemblagem personalizada.
  2. No menu relatório , clique em Propriedades do relatório .
  3. Na caixa de diálogo Propriedades do relatório , clique no separador de referências .
  4. Em referências , clique no botão reticências (... ) junto de cabeçalho da coluna nome da assemblagem .

    Nota A secção de classes é apenas para instância baseadas em membros. Não é para membros estáticos. Estática (também referida como "partilha" em alguns nossa documentação de serviços de relatório) significa que o membro está disponível para cada instância da classe e todas as ocorrências utiliza a mesma localização de armazenamento. Membros estáticos são declarados utilizando a palavra-chave partilhada no Visual Basic e a palavra-chave estática no C#. Isto pode ser um pouco confuso. O que isto significa é, se a assemblagem personalizada contiver membros de instância tem de aceder, terá de especificar o nome de classe e nome de instância na secção classes . Uma vez que o método que irá ser chamar a partir dos serviços de relatório foi definido como estático utilizando a palavra-chave partilhada no Visual Basic, vai utilizar a secção referências em vez da secção de classes .
  5. Na caixa de diálogo Adicionar referências , clique em Procurar . (No SQL Server 2005, clique no separador Procurar .)
  6. Localize e clique em assemblagem personalizada. Clique em Abrir . (No SQL Server 2005, clique em Adicionar em vez de Abrir .)
  7. Na caixa de diálogo Adicionar referências , clique em OK .
  8. Na caixa de diálogo Propriedades do relatório , clique em OK .
A Microsoft está agora preparadas utilizar a assemblagem personalizada no Reporting Services.
  1. Abra o relatório (um ficheiro .RDL) no estruturador de relatórios.
  2. Para demonstrar como utilizar a assemblagem personalizada no Reporting Services, adicione uma caixa de texto. Para efectuar este procedimento, arraste uma caixa de texto em branco da caixa de ferramentas para o relatório.
  3. Nas propriedades da caixa de texto, clique na propriedade valor e, em seguida, chamar uma função utilizando a sintaxe seguinte.
    =ClassLibraryName.ClassName.MethodName or Namespace.ClassName.MethodName
    No exemplo, É especificado o seguinte.
    =SimpleClassLibrary.Class1.DoSomething()
    Outros formatos são utilizados para referenciar o código no Reporting Services. Por exemplo, utilize o seguinte formato se chamar incorporado código.
    =Code.MethodName()
    se chamar um utilizador não estático ou instância com base, método de dentro de uma assemblagem personalizada utilizando uma instância, utilizar o seguinte formato.
    =Code.InstanceName.Method
    Nota Seria definiu uma referência diferente se pretender utilizar um método baseado na instância. Para efectuar este procedimento, faria necessita para aceder às Propriedades do relatório , clique no separador referências e, em seguida, especificar o nome de classe e o nome de instância na secção classes .

Código de segurança de acesso se a assemblagem personalizada requer permissões adicionais

Se a assemblagem personalizada necessitar de permissões mais do que as permissões de nível de execução predefinidas, terá de efectuar algumas alterações de segurança de acesso de código. Se ocorrer um problema de permissões com segurança de acesso ao código, provavelmente verá "#Error" da assemblagem da personalizada em vez dos resultados esperados. Para alguns passos rápidos que pode executar para determinar se este problema ocorre e para obter instruções detalhadas sobre como conceder permissões adicionais para a assemblagem personalizada, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
842419Como conceder permissões a uma assemblagem personalizada que é referenciada num relatório no Reporting Services
Nota A abordagem seguinte é um teste para determinar se estão a ocorrer problemas de segurança de acesso de código. Não recomendamos que utilize a abordagem seguinte uma vez que concede permissões de fidedignidade total para a assemblagem personalizada.

Crie um novo CodeGroup para a assemblagem personalizada e, em seguida, conceder permissões de fidedignidade total. Para tal, abra o ficheiro Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\rssrvpolicy.config e, em seguida, adicione o seguinte código.
<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>
recomendamos que crie uma permissão mais específica definida em vez de atribuir esta permissão definido para o grupo de código. Este artigo é pretendido para obter a e em execução com assemblagens personalizadas e requer mais detalhes.

Nota Assemblagens personalizadas frequentemente funcionam correctamente no estruturador de relatórios. No entanto, é possível que, quando implementar e tente executar a assemblagem personalizada no servidor de relatórios, as permissões de nível de execução predefinidas são insuficientes. O motivo para isto é, por predefinição, o estruturador de relatórios executa assemblagens personalizadas com permissões de "FullTrust". No entanto, quando implementar seus relatórios de servidor de relatórios, a permissão predefinida que é concedida no servidor de relatórios é definida ao nível de execução. Se este problema ocorre, provavelmente verá "#Error" no controlo de relatório em vez dos resultados esperados da assemblagem personalizado.

Código incorporado

Código incorporado é código escrito na secção de código de caixa de diálogo Propriedades do relatório . Código incorporado é uma boa escolha para código que será chamado várias vezes num relatório. Se pretender reutilizar o código de vários relatórios, uma assemblagem personalizada é provavelmente uma opção melhor. Para criar uma função incorporada, siga estes passos:
  1. No menu relatório , clique em Propriedades do relatório .
  2. Na caixa de diálogo Propriedades do relatório , clique no separador de código
  3. Adicione a seguinte função e, em seguida, clique em OK .
    Public Function EmbeddedFunction() as String
     	Return "this is from embedded code function"
    End Function
    
  4. No relatório, adicione uma nova caixa de texto.
  5. Adicione o seguinte à propriedade de valor .
    =code.EmbeddedFunction
Gosto Obrigado João por seu trabalho neste artigo. Ele tem experiência aprofundada no SQL Server e várias linguagens de desenvolvimento da Microsoft e enjoys trabalhar com os clientes e resolver problemas difíceis. Espero que gostado tópico ?s Este mês! Obrigado pela leitura! Como sempre, vontade submeter ideias tópicos que pretende no futuro corrigida colunas ou na base de dados de conhecimento utilizando o formulário Ask For It.

Propriedades

Artigo: 920769 - Última revisão: 26 de janeiro de 2007 - Revisão: 1.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Reporting Services
  • Microsoft SQL Server 2000 Reporting Services
Palavras-chave: 
kbmt kbhowto KB920769 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 920769

Submeter comentários

 

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