L'utilizzo di assembly personalizzati o codice incorporato in Reporting Services

Traduzione articoli Traduzione articoli
Identificativo articolo: 920769 - Visualizza i prodotti a cui si riferisce l?articolo.
SQL Server Support Voice colonna

L'utilizzo di assembly personalizzati o codice incorporato in Reporting Services

per personalizzare questo articolo in base alle proprie esigenze, si desidera invitati a inviare le proprie idee sugli argomenti di interesse Ŕ e problemi che si desidera vedere risolti in futuro articoli della Knowledge Base e di Support Voice. ╚ possibile inviare idee e commenti e suggerimenti tramite il modulo Ask For It. C'Ŕ anche un collegamento al modulo nella parte inferiore della colonna.
Espandi tutto | Chiudi tutto

In questa pagina

Bentornato! Ho Sandy Yakob con il team Microsoft SQL Server contenuto. ╚ il hostess per SQL Server Support Voice. Una nota rapida su me: hanno lavorato con Microsoft per 14 anni. Per gli ultimi tre anni, sta utilizzando il team di SQL Server contenuto.

Per colonna di questo mese, John Sirmon fornirÓ la procedura per utilizzare un assembly personalizzato o un codice incorporato in SQL Server 2000 Reporting Services e SQL Server 2005 Reporting Services. In questo articolo Ŕ stato progettato per fornire le operazioni di base per ottenere Ŕ esecuzione con un assembly personalizzato in Reporting Services. John Ŕ un Support Escalation Engineer con il team di supporto SQL Developer presso Microsoft e ha lavorato per Microsoft dal marzo 2001. Ha ha lavorato con SQL Server per oltre 10 anni e si ha lo sviluppo di ampio esperienza con Microsoft Visual Studio. John contiene un livello di s. b. in Amministrazione di business da Citadel il. Contiene anche una certificazione Microsoft Certified Solution Developer (MCSD) e una certificazione Microsoft Certified Database Administrator (MCDBA). Spero che divertirsi con la colonna e utile.

Creare un assembly personalizzato

Per creare un assembly personalizzato, attenersi alla seguente procedura:
  1. Creare una libreria di classi di Visual Studio. Dal menu file scegliere Nuovo , scegliere progetto , quindi Libreria di classi .
  2. Consente di specificare il nome e il percorso. Ad esempio, ╚ possibile utilizzare SimpleClassLibrary e C:\Documents and Settings\user1\My Documents\Visual Studio 2005\projects.
  3. Aprire il file di classe (nel mio caso Class1.vb) e quindi creare le funzioni che si desidera utilizzare in Reporting Services. Nel mio caso, ╚ sufficiente creare una semplice funzione condivisa.

    Nota PoichÚ si tratta di una funzione condivisa (statica in C#), non Ŕ necessario accedere utilizzando un oggetto di cui Ŕ stata creata un'istanza. Tenere questo presente come questo ha effetto su come si fa riferimento l'assembly in avanti in questo articolo.
    Public Class Class1
    
        Public Shared Function DoSomething() As String
            Return "string data returned from custom assembly"
        End Function
    
    End Class
    
  4. Dopo aver aggiunto tutti il codice, scegliere SimpleClassLibrary genera dal menu Genera . Questo passaggio viene creato l'assembly o DLL gestita nella cartella rispettivi collocazione. Nel mio esempio questo passaggio creato l'assembly, SimpleClassLibrary.dll nella cartella Documenti\visual Studio 2005\Projects\ SimpleClassLibrary\bin\Debug.

Copiare l'assembly personalizzato per le cartelle SQL Reporting Services

Rendere l'assembly disponibili per la progettazione report e server di report in Reporting Services. Per effettuare questa operazione, Ŕ necessario copiare la DLL nella cartella di progettazione report e la cartella di report server.

Nota Il percorso potrebbe essere leggermente diverso a seconda del percorso di installazione.
  • Copiare il file DLL per Reporting Services 2005, le seguenti cartelle:
    • Programma Visual Studio 8\Common7\IDE\PrivateAssemblies
    • Programma Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin
  • Copiare il file DLL per Reporting Services 2000, le seguenti cartelle:
    • Programma Files\Microsoft SQL Server\80\Tools\Report Designer.
    • Programma Files\Microsoft SQL Server\MSSQL\Reporting Services\ReportServer\bin.
Nota PoichÚ Ŕ necessario eseguire questo ogni volta che si modifica il codice, pu˛ essere un po' noioso. Molti sviluppatori creano file batch per gestire questa attivitÓ. ╚ qui un file di batch di esempio Ŕ possibile 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"
questa attivitÓ in genere gestire mediante la creazione un evento di post-generazione personalizzato nel progetto. A tale scopo, accedere alle proprietÓ del progetto. Successivamente, fare clic sulla scheda Compila e quindi fare clic su Eventi di generazione . VerrÓ visualizzata la finestra di dialogo Eventi di generazione . Scegliere la riga di comando evento di post-generazione e quindi digitare le seguenti operazioni:
Copia "$ (TargetPath)" "c:\Programmi\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\"
copiare "$ (TargetPath)" "C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\bin\"
Questo utilizza una macro di post-generazione per specificare la posizione dell'assembly. Per ulteriori informazioni sulla creazione di eventi di post-generazione, visitare il seguente sito Web MSDN (informazioni in lingua inglese):
http://msdn2.microsoft.com/en-us/library/42x5kfw4.aspx

Aggiungere un riferimento all'assembly personalizzato nella finestra di Reporting Services

Per aggiungere un riferimento all'assembly personalizzato, aprire il report di Reporting Services in Report Designer. Per effettuare questa operazione, attenersi alla seguente procedura:
  1. Aprire il report che farÓ riferimento l'assembly personalizzato.
  2. Nel menu report , fare clic su ProprietÓ del report .
  3. Nella finestra di dialogo ProprietÓ Report , fare clic sulla scheda riferimenti .
  4. Nella casella riferimenti , fare clic sul pulsante con i puntini di sospensione (... ) accanto all'intestazione della colonna nome dell'assembly .

    Nota La sezione di classi Ŕ solo per i membri di istanza in base. Non per i membri statici. Statico (noto anche come "condivisa" in alcuni dei nostre documentazione Reporting Services) significa che il membro Ŕ disponibile per ogni istanza della classe e che ogni istanza utilizza la stessa posizione di archiviazione. I membri statici sono dichiarati dalla utilizzando la parola chiave condivisa in Visual Basic e la parola chiave static in C#. Pu˛ essere un po' di confusione. Ci˛ significa, se l'assembly personalizzato contiene membri di istanza che si desidera accedere, sarÓ necessario specificare il nome della classe e il nome dell'istanza nella sezione classi . PoichÚ il metodo che Ŕ possibile chiamare da Reporting Services Ŕ stato definito come static tramite la parola chiave di condivisa in Visual Basic, si utilizzerÓ la sezione riferimenti invece della sezione classi .
  5. Nella finestra della finestra di dialogo Aggiungi riferimento , fare clic su Sfoglia . (In SQL Server 2005, fare clic sulla scheda Sfoglia .)
  6. Individuare e selezionare l'assembly personalizzato. Fare clic su Apri . (In SQL Server 2005, fare clic su Aggiungi anzichÚ Apri ).
  7. Nella finestra di dialogo Aggiungi riferimento , fare clic su OK .
  8. Nella finestra di dialogo ProprietÓ Report , fare clic su OK .
Si sono pronti utilizzare l'assembly personalizzato in Reporting Services.
  1. Aprire il report (un file con estensione RDL) in Progettazione Report.
  2. Per illustrare come utilizzare l'assembly personalizzato in Reporting Services, aggiungere una casella di testo. Per effettuare questa operazione, trascinare una casella di testo vuota dalla casella degli strumenti al report.
  3. Nelle proprietÓ della casella di testo, fare clic sulla proprietÓ Value e quindi chiamare una funzione utilizzando la sintassi seguente.
    =ClassLibraryName.ClassName.MethodName or Namespace.ClassName.MethodName
    In questo esempio, ╚ specificato quanto.
    =SimpleClassLibrary.Class1.DoSomething()
    Altri formati vengono utilizzati per fare riferimento al codice in Reporting Services. Ad esempio, utilizzare il seguente formato se si chiama incorporato codice.
    =Code.MethodName()
    se si chiama non statici o basati su istanza, il metodo dall'interno di un assembly personalizzato utilizzando un'istanza utilizzare il formato riportato di seguito.
    =Code.InstanceName.Method
    Nota Sarebbe impostati come riferimento in modo diverso se si desidera utilizzare un metodo di istanza. Per effettuare questa operazione, si sarebbe necessario per passare alla ProprietÓ Report , fare clic sulla scheda riferimenti e quindi specificare il nome della classe e il nome dell'istanza nella sezione classi .

Protezione dall'accesso di codice se l'assembly personalizzato richiede ulteriori autorizzazioni

Se l'assembly personalizzato richiede pi¨ autorizzazioni rispetto alle autorizzazioni di livelli esecuzione predefinito, Ŕ necessario apportare alcune modifiche di protezione accesso di codice. Se si verifica un problema di autorizzazioni di protezione dall'accesso di codice, si noterÓ molto probabilmente "Messaggio # errore" dall'assembly personalizzati anzichÚ i risultati previsti. Per alcuni passaggi rapide che Ŕ possibile eseguire per determinare se questo problema si verifica e per istruzioni dettagliate su come concedere autorizzazioni aggiuntive all'assembly personalizzato, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
842419Come concedere autorizzazioni a un assembly personalizzato viene fatto riferimento in un report in Reporting Services
Nota L'approccio seguente Ŕ un test per determinare se si verificano problemi di protezione accesso di codice. Non Ŕ consigliabile utilizzare il seguente approccio in quanto vengono concesse autorizzazioni di attendibilitÓ totale all'assembly personalizzato.

Creare un nuovo CodeGroup per l'assembly personalizzato e quindi concedere autorizzazioni di attendibilitÓ. Per effettuare questa operazione, aprire il file Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportServer\rssrvpolicy.config e quindi aggiungere il codice riportato di seguito.
<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>
si consiglia di creare un set anzichÚ assegnare questa autorizzazione consente di impostare il gruppo di codice di autorizzazioni pi¨ specifiche. In questo articolo Ŕ previsto per ottenere Ŕ e in esecuzione con gli assembly personalizzati e questo richiede ulteriori dettagli.

Nota Gli assembly personalizzati funzionano spesso correttamente in Report Designer. Tuttavia, si noterÓ quando si distribuire e provare a eseguire l'assembly personalizzato di Server Report, le autorizzazioni di livelli esecuzione predefinita sono insufficienti. Il motivo Ŕ, per impostazione predefinita, Progettazione Report esegue gli assembly personalizzati con autorizzazioni "FullTrust". Tuttavia, quando si distribuisce i report a Server Report, l'autorizzazione di predefinito concesso in Server Report Ŕ impostata a livello di esecuzione. Si verifica questo problema, si noterÓ molto probabilmente messaggio "#" Errore nel controllo report anzichÚ i risultati previsti dall'assembly personalizzati.

Codice incorporato

Codice incorporato Ŕ codice che viene scritto nella sezione di codice della finestra di dialogo ProprietÓ Report . Codice incorporato Ŕ una buona scelta per il codice verrÓ chiamato pi¨ volte all'interno del report. Se si desidera riutilizzare il codice in pi¨ rapporti, un assembly personalizzato Ŕ probabilmente una scelta migliore. Per creare una funzione incorporata, attenersi alla seguente procedura:
  1. Nel menu report , fare clic su ProprietÓ del report .
  2. Nella finestra di dialogo ProprietÓ Report fare clic sulla scheda codice
  3. Aggiungere la seguente funzione e quindi fare clic su OK .
    Public Function EmbeddedFunction() as String
     	Return "this is from embedded code function"
    End Function
    
  4. Nel report, aggiungere una nuova casella di testo.
  5. Aggiungere quanto segue alla proprietÓ Value .
    =code.EmbeddedFunction
Vorrei ringraziare John per il suo lavoro rigido su questo articolo. Ha abbia esperienza approfondita in SQL Server e diversi linguaggi di sviluppo Microsoft e piace collaborato con i clienti e sulla risoluzione dei problemi di difficili. Auguriamo che si sia gradita argomento ?s questo mese! Grazie per la lettura. Come sempre, liberamente inviare idee, gli argomenti desiderati in futuro indirizzati colonne o della Knowledge Base utilizzando il modulo Ask For It.

ProprietÓ

Identificativo articolo: 920769 - Ultima modifica: venerdý 26 gennaio 2007 - Revisione: 1.0
Le informazioni in questo articolo si applicano a:
  • Microsoft SQL Server 2005 Reporting Services
  • Microsoft SQL Server 2000 Reporting Services
Chiavi:á
kbmt kbhowto KB920769 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 920769
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

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