Rapport Local SSRS de Visual Studio 2010 (.rdlc) avec la Source de données de L'objet

j'ai créé plus de projets en utilisant ReportViewer 2005 et 2008 en mode de traitement local que je peux compter sur mes mains. Tous Visual Studio 2005 ou 2008 ASP.NET projets de formulaires web. J'ai toujours utilisé une certaine saveur de source de données D'objet pour les rapports.

ce soir, j'ai essayé d'ajouter la même fonctionnalité à un projet MVC 2 de Visual Studio 2010 et j'ai échoué lamentablement. Premièrement, le rapport Add New Item > Reporting > est maintenant un rapport RDLC 2008 et non un rapport RDLC 2005. Deuxièmement, en essayant d'ajouter un ensemble de données, ma méthode habituelle de créer une classe de proxy de données avec des méthodes statiques qui retournent IEnumerables(Of Stuff) ne sera pas apparaître comme des sources dans la baisse des sources de données

Empty Data Source

Troisièmement, mon option seulement est d'ajouter une connexion de base de données. Il n'y a pas de "source de données objet" à choisir:

Database connections only

je suis perplexe. Comme je l' Je n'ai aucun problème à rédiger un rapport en utilisant le contrôle de ReportViewer. Ce que je ne peux pas faire est de comprendre comment configurer une Source de données dans ces nouveaux rapports de 2008 avec Visual Studio 2010 afin que je puisse pomper une liste d'objets de domaine dans le ReportViewer et afficher le rapport.

mise à JOUR

avec d'autres recherches, j'ai découvert que les projets MVC ne permettent pas l'utilisation de sources de données objet en leur sein. Une solution pour mon problème est de créer un projet distinct dans la solution-une application web, un service, ou même simplement une bibliothèque de classe, d'ajouter le rapport et la conception en conséquence.

je suis toujours à la recherche d'alternatives ici.

20
demandé sur Cœur 2011-04-15 08:11:06

6 réponses

voici quelques solutions. Le numéro deux est bien meilleur car il ne nécessite pas inutilement la duplication de vos assemblages.

Solution 1 (ok)

comme ajouté à la question elle - même et décrit dans le post Visual Studio 2010 Report Viewer-Object Datasource , il suffit de créer une bibliothèque séparée pour le projet et y ajouter le fichier rdlc. Cela semble être un bug avec L'Application web MVC type de projet lui-même pour tout autre type de projet (comme une Bibliothèque de Classe). L'assistant de configuration des sources de données doit maintenant ressembler à ceci:

data source configuration wizard

Solution 2 (meilleure)

comme prévu dans ne peut pas voir ou ajouter les sources de données du site Web dans le rapport RDLC en ASP.NET MVC , vous pouvez simplement ajouter un .aspx la page n'importe où à la MVC projet afin de piéger Visual Studio en tirant dans le bon temps de conception bibliothèques.

faites juste ce qui suit:

  • fermer toutes les fenêtres
  • Nettoyer Et Régénérer La Solution
  • Ajouter WebForm1.aspx au projet
  • ouvrir le fichier RDLC et choisir une source de données dans la liste déroulante:

    DataSource Dropdown

7
répondu KyleMit 2017-05-23 11:47:32

la réponse courte: Oui vous pouvez utiliser des sources de données objet dans RDLC 2008 (CE n'est tout simplement pas intuitif). Voici comment:

ouvrez votre page RDLC (dans la vue [Design]). Après un moment, L'onglet" Données " apparaîtra au sommet de Visual Studio. Sélectionnez "Ajouter une nouvelle Source de données", choisissez "Objet", et suivant. De là, vous pourrez voir la liste des objets que vous pouvez lier. Choisissez votre DTO / objet D'Affaires / quoi que ce soit de votre projet et hit Finish. Dans L'onglet données du rapport sur le côté gauche de Visual Studio, vous verrez votre objet ajouté. Copiez le nom de la source de données qu'il a généré (ce sera quelque chose comme "MyProject_MyObject").

maintenant dans votre controller, vous pouvez tirer un IEnumerable de ce DTO / BusinessObject et le passer comme le paramètre de données et votre nom de source de données comme ceci (désolé, pas de syntaxe VB):

ReportDataSource reportDataSource =
            new ReportDataSource("MyProject_MyObject", myIEnumerable);
5
répondu Robert Corvus 2011-05-09 22:20:22

Je ne suis pas sûr si vous voyez ce que je vois, mais il me semble que les classes avec des constructeurs privés (même avec des méthodes statiques publiques qui renvoient des listes de la même classe), ne figurent pas dans la liste.

Critères pour objet les sources de données à afficher dans le Rapport Visual Studio Nouveau jeu de données?

0
répondu Cade Roux 2017-05-23 12:02:48

j'ai eu le même problème, mais ensuite déplacer le rapport et les classes entities vers un autre projet séparé de la WebAplication, lorsque j'ai fait cela, l'Assistant affiche une autre option que la connexion à la base de données, donc j'ajoute une source de données objet à la bibliothèque C#. Puis j'utilise ce post pour récupérer la définition de rapport et intégré à la .aspx, espérons que cette aide!!

0
répondu Chuck o Crips 2017-05-23 11:47:32

ne s'affiche pas comme sources dans les Sources de données déroulant

j'ai eu le même problème il y a quelques jours. Je l'ai résolu en installant SP1 pour VS10. http://www.microsoft.com/download/en/details.aspx?id=23691

-1
répondu radbyx 2011-12-20 14:26:07

j'ai eu le même problème et j'ai suivi cette instructions (réponse de Zilong Lu), une fois que j'ai eu le Gestionnaire pour mon rapport et l'option pour global datasource n'est pas apparu, juste l'assistant de connexion. J'ai fait un clic droit sur mon projet et cliqué sur créer. Après cela, j'ai essayé d'ajouter à nouveau la source de données globale et l'assistant de connexion n'est pas apparu, mais l'option de source de données globale l'a fait.

-1
répondu Uriel Carrillo 2012-11-06 19:25:25