2011-05-25 5 views
0

J'essaie de charger le rapport sur la visionneuse de rapports de l'application web ASP.net. La chose est que j'ai deux projets, une bibliothèque de classe et une application web. Dans l'application web j'ai .edmx et wcf Data service (qui fait référence à l'edmx). À l'intérieur de la bibliothèque de classe, j'ai référencé le service. Et j'ai créé une classe (Société) dont j'ai écrit la requête linq. Enfin, j'ai créé un rapport rdlc dans une application web et utilisé la classe company comme objet pour obtenir tous les champs pour concevoir le rapport. Tout cela est parfait et fonctionne bien. Maintenant, ce que j'ai problème est que lorsque j'ai essayé de charger le rapport dynamique sur le bouton, cliquez alors je suis « Une erreur est survenue lors de rapport processing.Dataset1 » le code que je l'ai utilisé est comme ci-dessous:Comment charger dynamiquement rdlc et datasource dans ASP.net reportviwer?

protected void CompanyReport_Click(object sender, EventArgs e) 
     { 
      ReportViewer1.LocalReport.ReportPath = @"c:\..\..\..\..\..\..\..\Reports\CompanyReport.rdlc"; 
      ReportDataSource ds = new ReportDataSource(); 
      ds.Name = "Dataset1"; 
      ReportViewer1.LocalReport.DataSources.Add(ds); 

     } 

Répondre

0

Il est possible que le compte d'utilisateur sous lequel votre serveur Web s'exécute n'a pas accès au chemin de votre rapport. En outre, le chemin doit probablement être relatif plutôt qu'absolu, car sinon vous devrez changer le chemin lorsque vous déployez sur votre serveur web hébergé. Changer d'avant en arrière pourrait devenir fastidieux. Une chose que j'ai remarquée dans votre exemple est que vous créez le ReportDataSource et que vous lui attribuez un nom, mais que vous n'attribuez pas la source de données. Cela pourrait faire partie du problème.

Essayez quelque chose comme ceci et assurez-vous que theDataSet est une instance de votre source de données et que le type de theDataSet correspond au type spécifié pour Dataset1 dans votre définition de rapport.

ReportDataSource ds = new ReportDataSource("Dataset1", theDataSet); 

Espérons que cela aide.

Questions connexes