2010-05-11 21 views
0

J'avais posté cette question sur le site MSDN ForumRapport RDLC Viewer Par rapport Drill

http://social.msdn.microsoft.com/Forums/en/vsreportcontrols/thread/f00e3406-354d-4f54-acce-7b7f0ad4c90f

Mais je ne reçois pas de réponse. Pouvez-vous m'aider s'il vous plaît. Je suis vraiment coincé avec cette tâche plutôt simple.

Mon code semble être correct mais je reçois le

Une instance de source de données n'a pas été fourni pour la source de données « de DataSet1_Order_Details ».

Désolé pour le poste croix ...

Répondre

0

J'ai résolu l'erreur.

J'ajoutais la source de données comme

this.ReportViewer.Localreport.DataSource.Add 
(new RemoteDataSource("DataSet1_Order_Details", ObjectDataSource2.ID)); 

au lieu de la source de données doit être ajouté de la manière suivante

DataSet1TableAdapter.OrderDetails od = new DataSet1TableAdapter.OrderDetails(); 
((LocalReport)e.report).Datasources.Add(new RemoteDataSource("DataSet1_Order_Details", od.get(orderid)) 

ce résolu le problème et maintenant je suis en mesure d'avoir percer dans le rapport ReortViewer.

Cordialement, Abhishek

0

J'ai eu une même expérience et ce fut parce que j'essaie tosee le rapport d'un mauvais endroit, laissez-moi vous expliquer

  • Il y a un DataSet dans RDLC rapports
  • Il existe une méthode dans DAL qui obtient des données de db
  • Il existe une méthode dans BAL ou UI qui appelle la méthode DAL et l'ensemble de données de remplissage. La plupart du temps, il s'agit d'une page unique qui récupère certains paramètres de l'utilisateur et remplit le jeu de données et redirige finalement l'utilisateur vers la page du visualiseur de rapport.
  • votre eror apparaît dans la page d'affichage des rapports

Ainsi, le mai suivant est arrivé

  • vous entrez directement ReportViewer page sans jeu de données de remplissage
  • vous êtes allé à corriger la page et remplissez l'ensemble de données, mais inreport spectateur pageyoudidn't pas lier votre ensemble de données à votre rapport dans le code derrière.
  • Dans certains cas, cela peut être dû à l'expiration de la session.
+0

Je n'ai pas entré la visionneuse de rapports sans remplir le jeu de données. mon premier rapport apparaît parfaitement.quand je clique sur le lien, j'ai le gestionnaire d'événement d'exploration à travers où je fais tous les efforts possibles pour peupler l'ensemble de données. jetez un oeil sur le code que j'ai posté et aussi les captures d'écran. –

0

Cela a fonctionné pour moi aussi, bien que la vraie clé est ici:

((LocalReport)e.report) 

Dans mon cas, je me sers:

((LocalReport)e.report).LoadReportDefinition(report_stream); 

foreach (ReportParameter rp in ((LocalReport)e.report).OriginalParametersToDrillthrough) 
     { 
      _paramCollection[rp.Name].parameterValue.AddRange(rp.Values.OfType<string>()); 
     } 
DataTable newData = GetData(); 
ReportDataSource rds = new ReportDataSource(); 
rds.Name = _datasetName; 
rds.Value = newData; 
((LocalReport)e.report).DataSources.Add(rds); 

Le Reportviewer gère le reste. @Knows Not Much, merci pour l'avance.