Question

Quelqu'un a-t-il pu utiliser une collection générée par SubSonic en tant que "source de données d'objet métier"? avec Microsoft report (rdlc)? J'ai généré le code de classe SubSonic mais, pour une raison quelconque, la fenêtre de la source de données du rapport ne la voit pas comme une source de données de collection d'objets potentielle.

Y a-t-il quelque chose que je dois faire pour que cela fonctionne?

Merci d'avance ... vsdotnetguy

Était-ce utile?

La solution 3

Thx Chris et Adam,

Voici la réponse que j'ai trouvée.

Dans mon cas, je souhaitais définir de manière dynamique les sources de données principales et de sous-rapports lors de l'exécution à l'aide des collections d'objets SubSonic. Cependant, je souhaitais également concevoir la présentation du rapport en effectuant un glisser-déposer des colonnes de la source de données.

Toutefois, je n’ai pas pu concevoir le rapport à l’aide de glisser-déposer, car aucune de mes collections SubSonic n’apparaissait dans les sources de données du site Web.

Cependant, plus tard, alors que j'effectuais une liaison de contrôle à l'aide du contrôle ObjectDataSource, j'ai constaté que NOW mes collections SubSonic étaient affichées dans la fenêtre Website DataSources et que je pouvais faire glisser et déposer la présentation du rapport.

Ainsi, si vous définissez de manière dynamique les sources de données de rapport au moment de l'exécution et n'utilisez PAS le contrôle ObjectDataSource déjà dans votre projet, vous DEVEZ ajouter un contrôle factice ObjectDataSource à l'une de vos pages aspx. Les sources de données d'objet métier seront ensuite affichées dans le concepteur de rapports.

Autres conseils

J'ai déjà chargé des rapports Reporting Service à partir d'objets métier (chargés via NHibernate - ce qui n'est pas exact mais suffisamment proche pour permettre l'argumentation).

Quelques points clés: 1. Retournez vos objets dans List, même si vous ne retournez qu'un seul objet. 2. Vous voulez des objets métier FLAT. Vous devrez peut-être passer par une transformation DTO pour l'obtenir. En clair, je veux dire que la propriété la plus complexe que vous puissiez avoir dans un objet métier est une chaîne et un nombre (int, décimal, double). Si vous vous attendez à saisir une valeur comme celle-ci: myObject.Customer.Name, oubliez ça. Créez une propriété CustomerName. 3. Si vous avez besoin de données provenant de plusieurs endroits, essayez de diviser vos rapports en sous-rapports. Vous devez désactiver la clé de source de données pour déterminer les données à retourner au rapport.

J'en ajouterai plus, si je me souviens bien, cela fait déjà quelques mois que je l'ai fait.

Oui, je l’ai fait, vous devez seulement vous assurer que le projet contenant vos rapports fait référence à votre projet SubSonic (évidemment :).

Parfois, j'ai également constaté que Visual Studio pouvait être un peu bouleversé et nécessiter un redémarrage avant de repeupler la fenêtre de source de données avec des objets générés par SubSonic.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top