Problèmes de définition de la source de données RDLC à l'objet
De fond:
J'ai été chargé de la conversion d'une base de données d'Accès de l'application à ASP.Net C# MVC. C'est ma première application MVC.
Il y a 10 rapports qui ont besoin de conversion. Nous utilisons RDLC fichiers et reportviewer. Je suis à l'aide de Visual Studio 2010 avec toutes les plus récents correctifs. Nous sommes connecter à une base de données SQL Server qui a été peuplée par la base de données Access existante, de sorte que la structure de la table est assez bien défini dans la pierre, ou autre chose, nous allons essayer de convertir les 10 ans de données.
J'ai terminé tous, mais deux de ces rapports. Les rapports finaux nécessitent plus de traitement, et de ne pas afficher les données de la base de données. La meilleure façon de le faire serait de créer un objet de C# et de faire tout le traitement côté serveur, puis utilisez RDLC pour afficher les résultats.
Question
Le problème, je vais avoir, c'est que Visual Studio ne pourra pas reconnaître les objets que j'ai créé comme sources de données potentielles. Chaque fois que j'essaie de "ajouter un jeu de données", il apporte de la "source de données assistant de configuration" et ne permet qu'une base de données SQL Server que la connexion de données. Je sais qu'il y a un écran qui existe qui permet de sélectionner un objet en tant que votre jeu de données, mais je n'ai jamais voir cet écran.
Voici les objets (fonctions de traitement retiré pour plus de clarté):
public class TurnAroundVal
{
//Registration Package information
public string dataType { get; set; }
//Calculated totals; values only set through constructor or calculation function
public int packageCount { get; private set; }
public int dayCount { get; set; }
public double avgTurnAround { get; private set; }
public int upperRange { get; private set; }
public int lowerRange { get; private set; }
}
public class TurnAroundVals
{
//Public Variables
public IEnumerable<TurnAroundVal> TurnArounds { get; private set; }
public DatePass dates { get; set; }
public int pkgTotal { get; private set; }
public double dayTotal { get; private set; }
public double avgAllTurnArounds { get; private set; }
}
Je voudrais aussi être prêt à utiliser l'interface IEnumerable de "TurnAroundVal" comme source de données, et il suffit de passer les dates, int et double en tant que paramètres. L'un et l'autre travail.
Question
Est-il un paramètre dans Visual Studio 2010 que je suis absent pour permettre à la RDLC Designer de voir les objets que j'ai créé?
Suis-je tort de penser cela fonctionne avec les classes que j'ai défini?
Réponse
Toutes les suggestions ont été utiles, mais en fin de compte qu'est ce que cela fonctionne pour moi a été de créer un fichier temporaire non-projet web dans la même solution et de créer de la RDLC. Quand je suis allé pour ajouter un dataset, il montre des "Objets" comme une option. Vous devez ajouter une référence à votre projet web, de sorte que vos objets sont visibles, mais vous pouvez choisir celui que vous souhaitez et les utiliser que dans le RDLC. Après cela, il vous suffit de glisser-déposer le fichier RDLC dans votre projet web, supprimer la temp projet, et vous êtes bon pour aller. N'oubliez pas que vous devez ajouter les sources de données manuellement dans le code, et qu'ils ont à porter le même nom que vous avez spécifié dans la RDLC.
source d'informationauteur War2d2
Vous devez vous connecter pour publier un commentaire.
Vous devrez peut-être mettre le fichier de la classe dans le App_Data ou dossier App_Code, mais je n'en suis pas certaine.
Cela pourrait aussi aider.
http://msdn.microsoft.com/en-us/library/ms251692%28v=vs.100%29.aspx
Ensemble de vos objets sous le même espace de noms mais sur un autre projet qui permet ensuite de référence sur votre INTERFACE.
Également essayer de la mise en œuvre de
INotifyPropertyChanged
.Visual Studio ne reconnait pas votre classe lorsque vous utilisez uniquement des membres du public. Lorsque vous utilisez les méthodes getter et setter au lieu de cela, vous pouvez voir votre classe lorsque vous choisissez votre source de données.
Il y a quelques autres assistants de Visual Studio qui ne fonctionnent pas avec le public et les membres.
Acclamations, Markus
Je viens de tomber sur ce même problème lorsque j'essaie de créer des rapports dans une RDLC ASP.NET projet MVC dans Visual Studio 2017donc je suis en ajoutant ce qu'une réponse distincte pour le rendre clair que c'est toujours un problème à janvier 2018.
Ma solution a consisté en C# d'un projet de bibliothèque et un MVC projet client.
Ajout de rapports (en choisissant l'option à ajouter un nouvel élément, puis en choisissant un Rapport à l'élément de l'Assistant) dans le C# du projet de bibliothèque ouvre l'Assistant de Rapport avec la Source de Données de Configuration de l'Assistant (où je peux choisir d'utiliser une Base de données, un Service ou un Objet en tant que source de données) modal sur le dessus de celui-ci:
Alors que, en choisissant d'ajouter un nouveau rapport à l'élément de l'assistant dans le projet MVC vient d'être mis en place le Rapport de l'Assistant sans la Source de Données de Configuration de l'Assistant:
J'ai essayé d'ajouter d'affaires classes d'objet dans mon projet MVC, le recompiler et d'y ajouter ensuite un Rapport à la MVC du Projet de nouveau, mais j'ai encore la seconde capture d'écran, donc il semble que vous n'avez tout simplement pas obtenir les Données de Configuration de la Source de l'Assistant lors de l'ajout de projets MVC pour une raison quelconque.