2009-02-09 6 views
2

J'utilise Crystal Reports XI avec C# Visual Studio 2005. J'essaie de créer un sous-rapport à partir d'un ensemble de données de synthèse. Un exemple simple serait Company Listing avec les employés. Je charge l'ensemble de données Société (avec CompanyId). Je veux créer un sous-rapport qui est lié par CompanyId de sorte que l'ensemble de données est chargé (évidemment) sur demande. Je peux créer ce sous-rapport si je charge tous les détails dans un ensemble de données monstre, mais dans mon implémentation réelle, cela impliquerait de charger des millions de lignes de détails (pas une option).Sous-rapport Crystal Reports à l'aide de DataSets

Est-il possible de capturer l'événement SubReport et de charger l'ensemble de données à partir de ma connexion à la base de données? Je veux essentiellement intercepter l'appel de lien de sous-rapport pour construire le jeu de données moi-même.

+0

Ceci est une question intéressante - jamais savoir s'il était possible? –

Répondre

1

Ceci est simplement possible. Créez 2 tables de données dans le jeu de données xsd que vous avez. Obtenez des valeurs pour ces 2 bases de données en fonction d'un ID/valeur de clé commun. Copier une table de jeu de données à l'autre comme

ds2.Tables.Add(ds1.Tables[0].Copy()); 

puis,

rpt.Load(path + @"Report\Report1.rpt"); 
rpt.SetDataSource(ds2); //datasource is single 
crystalReportViewer.ReportSource = FFrpt; 

quand ur subreport ajoutant, obtenir la deuxième table comme source de données et ses valeurs. ajoutez ces champs à votre sous-rapport, c'est fait!

Cordialement Shyam