Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Crystal Reports > SDK
SDK Forum sur l'utilisation de Crystal Reports par des API (VB, C++, Delphi, Java, etc.)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/06/2008, 18h22   #1
Membre du Club
 
Avatar de annalady
 
Inscription : mars 2005
Messages : 169
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 169
Points : 53
Points : 53
Par défaut [VS 2008] DataSource composée d'objets de différents types

Salut

J'utilise des objets métier pour remplir mes rapports.

Voici le code que j'utilise, il fonctionne parfaitement :


Code :
1
2
3
4
5
6
 
ReportDocument document = new ReportDocument();   
document.LOAD(reportPath); //reportPath = chemin vers mon fichier .rpt
IEnumerable<Customer> customers = DATABASE.SelectCustomers();   
document.SetDataSource(customers);   
crViewer.ReportSource = document;
Comme vous pouvez le constater, ma DataSource est une collection de customers.

Imaginez maintenant que je veuille ajouter des informations provenant d'autres objets métier, disons des products.

Si j'utilisais un DataSet comme source de données, ça serait facile : j'aurais une DataTable pour les customers, et une DataTable pour les products, toutes deux faisant partie de mon DataSet.

Sauf que moi j'utilise des objets métier, que je ne peux pas regrouper dans un même objet ! J'ai essayé de regrouper mes deux collections dans une liste générique d'objets mais ça ne fonctionne pas :

Code :
1
2
3
4
5
6
7
8
9
10
 
ReportDocument document = new ReportDocument();   
document.LOAD(reportPath); //reportPath = chemin vers mon fichier .rpt    
IEnumerable<Customer> customers = DATABASE.SelectCustomers();      
IEnumerable<Product> products = DATABASE.SelectProducts();   
List<object> everything = new List<object>();   
everything.ADD(customers);   
everything.ADD(products);   
document.SetDataSource(everything);      
crViewer.ReportSource = document;
Est-ce qu'il existe un moyen de faire ça ?
annalady est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h01.


 
 
 
 
Partenaires

Hébergement Web