2013-05-24 8 views
5

Desidero accedere alla sessione o visualizzare le variabili nei report SSRS 2012 proprio come si accede a c#.Come accedere alla variabile di sessione in SSRS (SQL Server 2012)?

Session["user"]

voglio accedere come questo in SSRS rapporto.

Desidero includere l'utente che ha effettuato l'accesso quando viene generato il rapporto.

Esiste un modo per raggiungere questo obiettivo? Possiamo accedervi in ​​codice personalizzato in SSRS?

+0

+1 dallo sparatutto via email :) – Buras

+0

Haha. Grazie @ Buras. = D –

risposta

1

Nel codice sottostante, è possibile copiare i dati desiderati con un parametro del report.

// Copy the session username to a report param called "CurrentUser". 
    ReportParameter userParam = new ReportParameter("CurrentUser", Session["user"]); 

    // add the parameter to the report 
    reportViewer.ServerReport.SetParameters(new ReportParameter[] { userParam }); 

E quindi aggiungere il parametro al report come si farebbe con qualsiasi altro parametro. Vedere l'esempio: http://msdn.microsoft.com/en-us/library/aa337091.aspx

+0

È applicabile al database Oracle? –

+0

Il codice che ho scritto era specificamente per Report che non è legato ad un database specifico. –

+0

Grazie. Ho avuto l'idea ma non la risposta completa. Grazie comunque. –

1

Nel report stesso è possibile fare riferimento all'utente che esegue il report con User!UserID.

Vedere Built-in Globals and Users References.

Edit dopo il commento:

poiché sembra che non hai riferimento interno per l'utente che esegue il report, la soluzione migliore potrebbe essere quella di passare il riferimento per l'utente con un parametro Hidden.

Da documentazione in linea:

È possibile nascondere il parametro sulla zona immissione dei parametri del rapporto pubblicato, valori ancora impostati per esso su un URL di report o in una definizione abbonamento.

Quindi in questo caso significherebbe che il parametro non sarebbe mai visibile agli utenti, ma è possibile impostarlo a livello di codice.

È possibile passare una stringa basata su Session["user"], o comunque si gestiscono gli ID utente all'esterno del report, al report, quindi visualizzare/manipolare questo parametro come richiesto nel report.

+0

Ho visto che signore, ma io non uso l'autenticazione di Windows, e dal modo in cui io uso Oracle come database se ciò sarebbe di aiuto. –

+0

Voglio dire che abbiamo nomi utente univoci per i nostri utenti. –

+0

In che modo gli utenti accedono al rapporto? Sito web di Report Manager? Controllo di ReportViewer nell'applicazione Web? Controllo ReportViewer nell'applicazione desktop? –

0

Se esistono molti dati comuni, è possibile memorizzare i dati di sessione in una tabella temporanea nel database. Si aggiorna questa tabella di dati di sessione prima di eseguire il report. Quindi è possibile accedere a questi dati come qualsiasi altra tabella nel report, specificando solo l'ID utente come parametro.

Problemi correlati