2009-01-29 8 views
4

J'ai une application Web qui sert les rapports de services de rapports SQL via le contrôle reportviewer. En raison de la complexité de certains rapports, j'utilise des rapports rdlc attachés à des objets métier.Rapports définis par l'utilisateur avec SSRS

Maintenant, je voudrais étendre le système et autoriser certaines formes de rapports définis par l'utilisateur. Idéalement, j'aimerais que les utilisateurs connectent leurs rapports aux mêmes objets de gestion que ceux que j'utilise pour créer les rapports rdlc.

  1. Existe-t-il un contrôle permettant aux utilisateurs de créer/éditer leurs propres fichiers rdlc?
  2. Les fichiers rdl peuvent-ils être attachés à des objets métier ?
  3. Des astuces/conseils pour écrire mon propre contrôle pour éditer des fichiers rdlc? (Je voudrais pense que c'est beaucoup de travail et tenterait seulement s'il y a pas de réponse appropriée à 1 ou 2).

Tout mon développement a été fait dans VS 2005 avec SQL 2005 mais je pourrais mettre à niveau si de nouvelles fonctionnalités en 2008 aident avec la solution.

Répondre

1

Je pense que SQL Reporting Services n'est pas conçu pour ce type de personnalisation. Vous pouvez masquer et afficher les contrôles et les sous-rapports, mais des éléments tels que le regroupement interactif, etc. ne sont pas disponibles.

Vous pouvez vous intéresser à un framework de reporting tiers tel que Telerik's.

+0

SQL Reporting dispose de l'option Générateur de rapports dans laquelle les utilisateurs peuvent créer des rapports. Je m'attends à ce que les utilisateurs qui créent des rapports soient de véritables utilisateurs de données, de sorte qu'un degré de complexité est permis. Je préférerais ne pas passer à un nouveau cadre, car il y a déjà un énorme investissement dans les rapports actuels. – MBoy

3

Ce n'est pas vraiment une réponse, mais chez moi, j'ai créé notre propre Report Builder.

Nous disposons d'une trentaine de rapports de Reporting Service auxquels nos utilisateurs peuvent accéder via l'application Web ou de bureau. Ce que nous voulions, c'était donner à nos utilisateurs la possibilité de prendre n'importe quelle section dans ces rapports et de créer les leurs.

Si un rapport a été créé pour eux mais qu'ils ne veulent pas voir le graphique, ils peuvent créer le même rapport sans le signaler. S'ils veulent combiner des parties de 4 rapports différents pour faire un rapport de synthèse, ils peuvent faire glisser ces sections sur notre générateur personnalisé et l'enregistrer. Le générateur de rapports que j'ai dû assembler extrait tous les sous-rapports qu'ils ont sélectionnés et les lit dans le fichier XML en les ajoutant à un fichier XML de générateur de rapports que j'ai créé. Je dois ensuite agréger tous les paramètres afin de ne pas les demander plus d'une fois (les noms de paramètres doivent être uniques pour tous les rapports si vous ne voulez pas les agréger). Ce nouveau rapport XML est déployé sur le serveur et les utilisateurs peuvent y accéder quand ils le souhaitent. Je leur ai également donné la possibilité de créer leurs propres pages de couverture, en-têtes et pieds de page en faisant glisser des zones de texte, des images, des variables globales (date de création, création, fonctionnement, numéro de page, etc. Je convertis alors tous les objets qu'ils ont drogués et les redimensionnais sur ce canevas dans un autre fichier XML de rapport et les déployais sous forme de sous-rapport qu'ils pouvaient ajouter à leurs rapports personnalisés

Oui, ceci Cela a demandé beaucoup de travail, mais nos utilisateurs l'adorent: nous sommes en train de leur permettre de créer un rapport avec des groupes spéciaux, de sorte que le rapport puisse être exécuté à différents niveaux:

Donc, c'est possible, mais il n'y a pas de réponse facile.) Je serais heureux de donner des conseils à quiconque le demande, mais une copie directe du code est une violation de mon contrat, mais je ferai ce que je peux en dehors de cela.

+0

Merci pour la réponse détaillée Dustin. Plus je regarde, plus il me semble que ma seule option est de suivre un parcours similaire. – MBoy

+0

Ce serait mieux si vous pouvez donner des exemples de code intéressants –

Questions connexes