web-dev-qa-db-fra.com

Visual Studio for SSRS 2008 - Comment organiser des rapports dans des sous-dossiers dans Solution Explorer?

En ce moment, j'ai un projet appelé rapports avec plusieurs rapports. Dans la solution Explorer, il se présente comme suit:

Shared Data Sources
 -- DEV
Reports
 -- Report1
 -- Report2
 -- Report3

Je souhaite que cela ressemble à ceci et que la même structure soit reportée sur le site Web du gestionnaire de rapports lorsque je clique sur Déployer.

Shared Data Sources
 -- DEV
Folder A
 -- Report1
Folder B
 -- Report2
 -- Report3

Quelqu'un sait-il comment faire ça?

28
Greg

J'utilise SSRS 2005 - I think cette partie fonctionne de la même manière qu'en 2008.

Autant que je sache, vous ne pouvez pas avoir de dossiers dans des projets, mais vous pouvez plusieurs projets dans une solution. 

Pour créer un nouveau dossier, cliquez avec le bouton droit sur la solution dans l'explorateur de solutions et sélectionnez Ajouter> Nouveau projet ...

Saisissez votre nouveau nom de projet (par exemple, MyProject) et sélectionnez Projet Report Server dans la liste des modèles installés de Visual Studio. Cliquez sur OK et votre nouveau projet devrait apparaître à la fin de la liste des projets dans l'Explorateur de solutions.

(Il existe d'autres moyens de mettre en place un nouveau projet de rapport, mais cela semble être le plus rapide.)

Si vous cliquez maintenant avec le bouton droit sur votre nouveau projet de rapport et sélectionnez Propriétés, vous pouvez voir le TargetReportFolder, qui utilisera par défaut votre nouveau nom de projet (par exemple, MyProject). Lorsque vous déployez des rapports à partir de SSRS, ils sont déployés à cet emplacement. (Vous pouvez modifier l'emplacement, si vous le souhaitez - je trouve qu'il est plus facile de garder une trace de ce qui se passe où en utilisant le nom du projet.)

Vous devrez copier toutes les sources de données à utiliser dans chaque projet dans le dossier des sources de données de tous les projets utilisant cette source de données. Par défaut, OverwriteDataSources est défini sur false. Ainsi, lorsque vous déployez un nouveau rapport, il utilise la source de données déjà déployée dans l'environnement Report Manager.

Donc, pour obtenir la structure du Gestionnaire de rapports que vous voulez voir:

  • Créer des projets appelés Dossier A et Dossier B
  • Déplacer/copier le rapport 1 dans le dossier Rapports du dossier de projet A
  • Déplacer/copier Report2 et Report3 dans le dossier Rapports du dossier de projet B
  • Déplacer/copier la source de données DEV dans les dossiers Sources de données partagées des dossiers de projets A et B
  • Déployez vos rapports

N'oubliez pas de vérifier vos modifications dans le contrôle de source.

28
user359040

La manière de le faire est similaire aux autres affiches. J'ai une solution avec plusieurs projets (chaque projet est nommé et placé dans le même nom de dossier que celui dans lequel je souhaite qu'il soit déployé).

Ensuite, j'ai monté un script en RS qui:
- Crée une source de données unique utilisée par tous les rapports, dans mon cas
- Parcourt tous les répertoires du dossier de la solution
- Crée le même nom de dossier sur le serveur RS
- Déploie tous les fichiers de ce répertoire dans ce dossier sur le serveur RS.
- Utilise rs.SetItemDataSources sur chaque rapport pour le rediriger vers ma source de données principale 

Et c'est fondamentalement ça.

Les mises en garde font que vous obtenez parfois des fichiers que vous ne souhaitez pas télécharger (comme des rapports supprimés avec les .RDL toujours en suspens). Mais vous pouvez utiliser un script autour de cela, ou simplement le supprimer dans RS et le télécharger à nouveau.

Ce faisant, j'ai un script, mais je peux déployer une structure sous de nombreux dossiers parents différents, chacun avec des sources de données différentes, et tous les rapports d'un dossier contenant les données d'une base de données différente. Cela me permet d'exécuter 1x instance RS mais d'avoir des domaines de développement, de test, de formation, etc.

3
Cody Konior

J'ai un projet de BI en cours dans SSRS2008 avec environ 80 rapports - et c'est mon expérience avec le déploiement de rapports dans des dossiers. Il s’agit de ma première incursion dans le développement des services de rapport. Par conséquent, tous les gourous me le diront si je déjeune.

Au départ, j’utilisais des dossiers dans le contrôle de source pour séparer les petits rapports par service afin que je reste organisé. Cela fonctionnait bien lorsque je développais mes rapports pour la première fois. Cependant, la première fois que j'ai déployé le projet sur le serveur de rapports, la structure a été complètement aplatie. J'ai donc abandonné l'utilisation d'une structure de dossiers pour l'organisation. 

Autant que je sache, la seule façon de créer une structure de dossiers dans SSRS consiste à utiliser l'interface utilisateur du gestionnaire de rapports et à créer des dossiers sur le serveur de rapports. Je suppose qu'à partir de là, vous modifieriez le chemin dans les propriétés du rapport dans Visual Studio. Soit cela, soit vous devez définir le chemin lors de la première configuration du rapport. Je n'ai pas testé cela, donc YMMV.

Donc, en conclusion: il n’est pas possible de créer les dossiers dans BIDS et de déployer vos rapports dans des dossiers utilisant l’EDI. J'espère que cela sera abordé dans 2008R2 car il est assez pénible de voir tous ces rapports regroupés dans l'explorateur de solutions.

2
kkeilman

Nous gérons cela avec des rapports liés dans SSRS. Nous déployons des rapports dans un dossier Distribution de rapports, à l'abri des utilisateurs, puis créons des rapports liés dans l'interface utilisateur Web de Reporting Services (une option de la section Gérer pour chaque rapport). Vous pouvez créer le rapport lié dans n’importe quel dossier afin de créer la structure de dossier souhaitée et de placer les rapports liés à l’endroit approprié. 

Vous pouvez tout déployer dans le dossier de distribution unique à partir de VS et les rapports liés sont mis à jour. Cela résout les problèmes de sous-rapport et de source de données puisque tous les rapports sont «exécutés» du dossier de distribution. Il est évident qu’il ya beaucoup d’installation au départ, et créer un nouvel environnement est une tâche fastidieuse. C’est si rare que nous n’avons pas essayé de l’automatiser.

2
ErikZ

Vous pouvez placer les fichiers dans des dossiers distincts sur le contrôle disque/source, mais ils sont répertoriés à plat et triés par ordre alphabétique dans Visual Studio. 

Je ne vois pas d'interface utilisateur pour gérer ce qui précède, mais si vous modifiez le fichier de projet (fichier de projet unique d'une solution VS), vous pouvez spécifier la balise FullPath XML de chaque fichier de rapport. 

1
Rez.Net

J'ai créé un projet de type serveur de rapports et je n'avais pas la possibilité d'ajouter un autre projet. Au lieu de cela, j'ai édité le fichier SLN et ajouté mes autres projets. La première partie du fichier SLN ressemblait alors à ceci à la fin pour accéder à mes 2 projets dans les sous-dossiers du fichier SLN.

Fichier de solution Microsoft Visual Studio, Format Version 10.00

Visual Studio 2008

Project ("{F14B399A-7131-4C87-9E4B-1186C45EF12D}") = "RestOfWorld", "RestOfWorld\RestOfWorld.rptproj", "{D24D5EEA-88A4-4375-802B-7CA877202787", ".".

Project ("{F14B399A-7131-4C87-9E4B-1186C45EF12D}" ") =" Amérique du Nord "," Amérique du Nord "," Amérique du Nord "," {C64A3BDC-F526-4037-AD48-31799BECAD3 "). ____.]Global

0
skiwii

@skiwii est correct. Avec VS 2013 Community Edition et SQL Data Tools - Business Intelligence, vous voyez not vous voyez le nœud Solution en haut de l’arborescence dans VS Solution Explorer, et vous devez pirater le Fichier .SLN pour l'exposer.

  1. Commencez avec le fichier .sln principal souhaité et un fichier .rptproj dans votre arborescence source. appelez ce 'parent'.
  2. Créez un nouveau fichier .rptproj Report Services vide dans un nouveau sous-dossier (sous le dossier contenant le fichier .sln). Par exemple, le projet est 'enfant1'. VS vous donnera également un fichier child1.sln dans ce dossier.
  3. Fermez toutes les fenêtres VS.
  4. Avec votre éditeur de texte préféré (teco!)
    1. ouvrir child1.sln. 
    2. Copiez les 2 lignes en haut; Projet ... et EndProject 
    3. Ouvrez parent1.sln
    4. Collez ces lignes sous le projet existant/EndProject.
  5. Ouvrez maintenant parent1.sln dans VS. Comme par magie, vous verrez le noeud Solution en haut de la fenêtre de l'Explorateur de solutions. 

Si vous avez eu beaucoup de chance, vous verrez également un deuxième projet appelé child1. Mais sinon, pas de problème. Vous pouvez simplement cliquer avec le bouton droit sur la solution et ajouter un nouveau projet de type Report Services.

0
BobHy