51 votes

Exportation de Reporting Services vers Excel avec plusieurs feuilles de travail

Je suis en train de créer un rapport MS Reporting Services qui est rendu dans Excel. J'essaie de comprendre comment configurer le rapport pour qu'il crée plusieurs feuilles de travail (onglets) des données du rapport. Je comprends que le fait d'entrer un saut de page dans le rapport vous donne une nouvelle feuille de calcul, mais existe-t-il un moyen de nommer chaque onglet au lieu de la feuille de calcul 1, feuille de calcul 2, etc. par défaut ?

Quelqu'un sait-il comment cela se fait ?

Merci d'avance !

54voto

huttelihut Points 1621

Il est trop tard pour l'auteur initial de la question, mais avec SQL Server 2008 R2, c'est désormais possible :

Définissez la propriété "Pagebreak" sur la tablix, le tableau ou tout autre élément pour forcer l'ouverture d'un nouvel onglet, puis définissez la propriété "Pagename" sur l'élément précédant le saut de page et sur l'élément suivant le saut de page. Ces noms apparaîtront sur les onglets lorsque le rapport sera exporté vers Excel.

Lisez l'article ici : http://technet.microsoft.com/en-us/library/dd255278.aspx

38voto

Edward Points 1522

Voici des captures d'écran pour SQL Server 2008 R2, utilisant SSRS Report Designer dans Visual Studio 2010.

J'ai fait des captures d'écran car certaines des boîtes de dialogue ne sont pas faciles à trouver.

1 : Ajouter le groupe

SsrsAddGroup

2 : Spécifiez le champ sur lequel vous souhaitez effectuer le regroupement.

SsrsAddGroupDialog

3 : Cliquez maintenant sur le groupe dans le sélecteur "Row Groups", directement sous le concepteur du rapport.

SsrsRowGroupsSelector

4 : F4 pour sélectionner le panneau de propriétés ; développez 'Groupe' et définissez Groupe > Saut de page > BreakLocation = 'Entre', puis entrez l'expression que vous voulez pour Groupe > Nom de page.

SsrsGroupProperty

5 : Voici un exemple d'expression

SsrsGroupPropertyDialog

Voici le résultat du rapport exporté vers Excel, avec des onglets nommés selon l'expression PageName

SsrsExcelTabs

12voto

cgreeno Points 17379

Comme @huttelihut a souligné Cela est désormais possible à partir de SQL Server 2008 R2. Lire la suite ici

Avant 2008 R2, cela ne semble pas possible mais MSDN Social propose quelques solutions de contournement.

5voto

AverageJon Points 11

La solution d'Edward a fonctionné pour moi.

Si vous voulez que l'ensemble de l'onglet se trouve sur une seule feuille avec un nom constant, spécifiez le PageName dans les propriétés de l'onglet. Si vous définissez le nom de la page dans les propriétés de l'onglet, vous ne pouvez pas utiliser les données de l'ensemble de données de l'onglet dans votre expression.

Si vous voulez que les lignes de l'onglet soient groupées en feuilles (ou si vous voulez qu'une feuille porte un nom basé sur les données), spécifiez le PageName dans l'en-tête du groupe.

1voto

James Kuchynski Points 31

Placez le nom de l'onglet dans l'en-tête de page ou le groupe TableRow1 de votre rapport afin qu'il apparaisse à la position "A1" sur chaque feuille Excel. Exécutez ensuite cette macro dans votre classeur Excel.

Sub SelectSheet()
        For i = 1 To ThisWorkbook.Sheets.Count
        mysheet = "Sheet" & i
        On Error GoTo 10
        Sheets(mysheet).Select
        Set Target = Range("A1")
        If Target = "" Then Exit Sub
        On Error GoTo Badname
        ActiveSheet.Name = Left(Target, 31)
        GoTo 10
Badname:
        MsgBox "Please revise the entry in A1." & Chr(13) _
        & "It appears to contain one or more " & Chr(13) _
        & "illegal characters." & Chr(13)
        Range("A1").Activate
10
        Next i
End Sub

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X