Comment utiliser des assemblys personnalisés ou de tout code intégré dans Reporting Services

Traductions disponibles Traductions disponibles
Numéro d'article: 920769 - Voir les produits auxquels s'applique cet article
SQL Server prise en charge de la voix colonne

Comment utiliser des assemblys personnalisés ou de tout code intégré dans Reporting Services

pour personnaliser cette colonne à vos besoins, nous souhaitons à inviter vous permet de soumettre vos idées sur les sujets qui vous intéressent et problèmes que vous souhaitez voir traités articles avenir de la base de connaissances et des colonnes Support Voice. Vous pouvez soumettre vos idées et vos commentaires à l'aide de l'écran Ask For It. Il existe également un lien vers le formulaire au bas de cette colonne.
Agrandir tout | Réduire tout

Sommaire

Te voilà de retour, bienvenue ! Je suis Sandy Yakob avec l'équipe Microsoft SQL Server contenu. Je suis votre hostess pour les colonnes SQL Server Support Voice. Une note rapide sur moi : J'AI ont été avec Microsoft pour 14 années. Pour les trois dernières années, J'AI avez travaillé avec l'équipe SQL Server contenu.

Pour colonne ce mois-ci, John Sirmon vous donne la procédure à utiliser un assembly personnalisé ou un code incorporé dans SQL Server 2000 Reporting Services et SQL Server 2005 Reporting Services. Cet article a été conçu pour vous donner les étapes de base pour vous aider aux et les s'exécuter avec un assembly personnalisé dans Reporting Services. Jean est ingénieur au support technique avec l'équipe SQL Developer support chez Microsoft et travaille pour Microsoft depuis mars 2001. Il a travaillé avec SQL Server pour plus de 10 ans et a étendu développement rencontrer avec Microsoft Visual Studio. John contient une certaine s b. Dans Business Administration à partir de la Citadel. Il contient également une certification MCSD (Microsoft Certified Solution Developer) et une certification administrateur de base de données Certified (MCDBA). J'espère que profiter de la colonne et de s'avérer utile.

Créer un assembly personnalisé

Pour créer un assembly personnalisé, procédez comme suit :
  1. Créer une bibliothèque de classe Visual Studio. Dans le menu Fichier , pointez sur Nouveau , pointez vers Project et puis cliquez sur bibliothèque de classes .
  2. Indiquez le nom et l'emplacement. Par exemple, J'AI utilisé 2005\projects SimpleClassLibrary et C:\Documents and Settings\user1\My Documents\Visual Studio.
  3. Ouvrez le fichier de classe (dans mon cas, Class1.vb) et créez les fonctions que vous souhaitez utiliser dans Reporting Services. Dans mon cas, je crée simplement une fonction partagée simple.

    note Comme il s'agit d'une fonction partagée statique en C#, nous ne pas devoir y accéder via un objet instancié. Gardez cela à l'esprit qu'il possède un effet sur la façon dont nous référencer notre assembly plus loin dans cet article.
    Public Class Class1
    
        Public Shared Function DoSomething() As String
            Return "string data returned from custom assembly"
        End Function
    
    End Class
    
  4. Une fois que vous avez fini d'ajouter le code, cliquez sur Créer SimpleClassLibrary dans le menu Générer . Cette étape crée l'assembly ou .dll géré dans le dossier emplacements respectifs. Dans mon exemple, cette étape créé mon assembly, SimpleClassLibrary.dll, dans le dossier Mes Documents\Visual Studio 2005\Projects\ SimpleClassLibrary\bin\Debug.

Copier l'assembly personnalisé vers les dossiers SQL Reporting Services

Mettre votre assembly disposition Report Designer et Report Server dans Reporting Services. Pour ce faire, vous devez copier le fichier .dll pour le dossier Report Designer et le dossier Report Server.

note Le chemin d'accès peut être un peu différente, selon votre chemin d'installation.
  • Pour Reporting Services 2005, copiez le fichier .dll dans les dossiers suivants :
    • Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies
    • Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
  • Pour 2000 services Reporting, copiez le fichier .dll dans les dossiers suivants :
    • Programme Files\Microsoft SQL Server\80\Tools\Report Designer
    • Program Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin
note Vous avez à faire ce chaque fois que vous modifiez le code, il peut être un peu fastidieux. De nombreux développeurs créer des fichiers par lots pour traiter cette tâche. Voici un fichier de lot exemple vous pouvez 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 REM Ce est la version de SQL Server 2005 : copier copie "c:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies" SimpleClassLibrary.dll 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"
je généralement gérer cette tâche en créer un événement après génération personnalisé dans mon projet. Pour cela, reportez-vous aux propriétés de votre projet. Ensuite, cliquez sur l'onglet compiler , puis cliquez sur Générer les événements . Cela ouvre la boîte de dialogue Générer les événements . Cliquez sur Post-build ligne de commande de l'événement et tapez suivantes :
copie $ (TargetPath) "c:\Program Files\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\ »
Copier $ (TargetPath) " C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\ »
Il utilise une macro après génération pour spécifier l'emplacement de Mes assembly. Pour plus d'informations sur la création après génération des événements, reportez-vous au site de Web MSDN (Microsoft Developer Network) suivant :
http://msdn2.microsoft.com/en-us/library/42x5kfw4.aspx

Ajout d'une référence à l'assembly personnalisé dans Reporting Services

Pour ajouter une référence à votre assembly personnalisé, ouvrez le rapport Reporting Services dans le Générateur de rapports. Pour ce faire, procédez comme suit :
  1. Ouvrez l'état qui font référence à l'assembly personnalisé.
  2. Dans le menu rapport , cliquez sur Propriétés du rapport .
  3. Dans la boîte de dialogue Propriétés du rapport , cliquez sur l'onglet Références .
  4. Sous références , cliquez sur le bouton points de suspension (... ) située en regard de l'en-tête de colonne Nom d'assembly .

    note La section classes est uniquement pour les membres d'instance-base. Il n'est pas pour les membres statiques. Statique (également appelé « partagé dans certains de notre documentation de Reporting Services) signifie que le membre est disponible pour chaque instance de la classe et chaque instance utilise le même emplacement de stockage. Des membres statiques sont déclarées à l'aide du mot clé partagé dans Microsoft Visual Basic et le mot clé statique dans C#. Ceci peut être un peu confus. Cela signifie, si votre assembly personnalisé contient des membres d'instance que vous deviez y accéder, vous devrez spécifier le nom de classe et le nom de l'instance dans la section classes . Étant donné que la méthode que J'AI appeler à partir de Reporting Services a été définie comme statiques en utilisant la clé partagé dans Visual Basic, je vais utiliser la section Références au lieu de la section classes .
  5. Dans la boîte de dialogue Ajouter une référence , cliquez sur Parcourir . (Dans SQL Server 2005, cliquez sur l'onglet Rechercher .)
  6. Recherchez et cliquez sur l'assembly personnalisé. Cliquez sur Ouvrir . (Dans SQL Server 2005, cliquez sur Ajouter au lieu d'ouvrir .)
  7. Dans la boîte de dialogue Ajouter une référence , cliquez sur OK .
  8. Dans la boîte de dialogue Propriétés du rapport , cliquez sur OK .
Vous êtes à présent prêt à utiliser l'assembly personnalisé dans Reporting Services.
  1. Ouvrez l'état (un fichier .rdl) dans le Générateur de rapports.
  2. Pour montrer comment utiliser l'assembly personnalisé dans Reporting Services, ajoutez une zone de texte. Pour ce faire, faites glisser une zone de texte vide de la boîte à outils à l'état.
  3. Dans les propriétés zone de texte, cliquez sur la propriété valeur , puis appeler une fonction à l'aide de la syntaxe suivante.
    =ClassLibraryName.ClassName.MethodName or Namespace.ClassName.MethodName
    Dans mon exemple, J'AI spécifié comme.
    =SimpleClassLibrary.Class1.DoSomething()
    Autres formats sont utilisés pour référencer le code dans Reporting Services. Par exemple, utilisez le format suivant si vous appelez incorporées de code.
    =Code.MethodName()
    si vous appelez un non statique, ou en fonction d'instance, méthode de dans un assembly personnalisé à l'aide d'une instance, utilisez le format suivant.
    =Code.InstanceName.Method
    note Avoir est configuré votre référence différemment si vous souhaitez utiliser une méthode en fonction d'instance. Pour cela, vous souhaitez besoin pour atteindre les propriétés du rapport , cliquez sur l'onglet Références , puis spécifier le nom de classe et le nom de l'instance dans la section classes .

Code de sécurité d'accès si l'assembly personnalisé nécessite des autorisations supplémentaires

Si l'assembly personnalisé nécessite des autorisations plus que les autorisations de niveau par défaut l'exécution, vous devez apporter certaines modifications de sécurité d'accès code. Si un problème d'autorisations avec sécurité d'accès au code se produit, vous verrez probablement « # erreur » à partir de votre assembly personnalisé au lieu des résultats attendus. Pour quelques opérations que vous pouvez effectuer pour déterminer si ce problème se produit et pour instructions détaillées comment accorder des autorisations supplémentaires à votre assembly personnalisé, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
842419 Comment accorder des autorisations à un assembly personnalisé qui est référencé dans un rapport dans Reporting Services
note L'approche suivante est un test pour déterminer si les problèmes de sécurité d'accès au code sont produisent. Nous vous déconseillons d'utiliser l'approche suivante car elle accorde des autorisations de confiance totale à votre assembly personnalisé.

Créer un nouveau CodeGroup pour votre assembly personnalisé et puis accorder les autorisations de confiance totale. Pour ce faire, ouvrez le fichier Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\rssrvpolicy.config, puis ajoutez le code suivant.
<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>
Nous vous recommandons de créer un ensemble au lieu d'affecter cette autorisation définie à votre groupe de code d'autorisations plus spécifiques. Cet article est prévue pour vous aider aux et en cours d'exécution avec des assemblys personnalisés et que cette opération nécessite plus de détails.

note Des assemblys personnalisés fonctionnent souvent correctement dans le Générateur de rapports. Toutefois, vous pouvez constater que lorsque vous déployez et puis essayez d'exécuter l'assembly personnalisé dans Report Server, les autorisations par défaut l'exécution de niveau sont insuffisantes. La raison en est, par défaut, Générateur de rapports exécute des assemblys personnalisés avec autorisations « FullTrust ». Toutefois, lorsque vous déployez vos états au Report Server, l'autorisation par défaut qui est accordée dans Report Server est définie au niveau de l'exécution. Si ce problème se produit, vous verrez probablement #Error dans le contrôle état au lieu de résultats attendus de l'assembly personnalisé.

Tout code intégré

Le code incorporé est du code écrit dans la section de code de la boîte de dialogue Propriétés du rapport . Tout code intégré est un bon choix pour code qui sera appelée plusieurs fois dans votre rapport. Si vous souhaitez réutiliser le code dans plusieurs rapports, un assembly personnalisé est probablement un meilleur choix. Pour créer une fonction incorporée, procédez comme suit :
  1. Dans le menu rapport , cliquez sur Propriétés du rapport .
  2. Dans la boîte de dialogue Propriétés du rapport , cliquez sur l'onglet code
  3. Ajoutez la fonction suivante, puis cliquez sur OK .
    Public Function EmbeddedFunction() as String
     	Return "this is from embedded code function"
    End Function
    
  4. Dans le rapport, ajouter une nouvelle zone de texte.
  5. Ajoutez le ci-dessous à la propriété Value .
    =code.EmbeddedFunction
Je que remercier John pour son travail sur cet article. Il a expérience approfondie dans SQL Server et plusieurs langages de développement de Microsoft et bénéficie d'utilisation des clients et résolution des problèmes difficiles. J'espère que vous apprécié rubrique ?s ce mois-ci ! Merci pour la lecture ! Comme toujours, hésitez pas à envoyer des idées sur des sujets souhaité adressé avenir colonnes ou dans la Base de connaissances en utilisant le formulaire Ask For It.

Propriétés

Numéro d'article: 920769 - Dernière mise à jour: vendredi 26 janvier 2007 - Version: 1.0
Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
  • Microsoft SQL Server 2005 Reporting Services
  • Microsoft SQL Server 2000 Reporting Services
Mots-clés : 
kbmt kbhowto KB920769 KbMtfr
Traduction automatique
IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d?articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d?avoir accès, dans votre propre langue, à l?ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s?exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s?efforce aussi continuellement de faire évoluer son système de traduction automatique.
La version anglaise de cet article est la suivante: 920769
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT.

Envoyer des commentaires

 

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