Je viens juste de commencer à écrire un logiciel de création de rapports dans la nouvelle version de Visual Studio nommée Visual Studio 2017 RC, mais je viens de remarquer que les outils de création de rapports de rapport sont absents des formulaires Windows et du modèle d'application WPF. Quelqu'un peut-il me dire pourquoi l'outil Reportviewer a disparu de Visual Studio 2017? Vraiment avoir des problèmes sans elle. Existe-t-il une alternative pour utiliser cet outil dans le nouveau visual studio?
** Mise à jour **: 18/08/2019
Supprimer la dernière version et revenir à 150.900.148.0
semble fonctionner sur plusieurs ordinateurs que j'utilise avec VS2017 et VS2019.
Vous pouvez revenir à 150.900.148 dans le gestionnaire de packages de la solution Nuget. Cela fonctionne de manière similaire aux versions précédentes. Utilisez la liste déroulante pour sélectionner l'ancienne version.
Il peut être plus facile de supprimer manuellement les références pour publier les versions 150.900 de ReportViewer et de les relire que pour les corriger.
N'oubliez pas de redémarrer Visual Studio après avoir modifié l'entrée de la boîte à outils.
Mise à jour : 8/7/2019
Une version plus récente du contrôle ReportViewer a été publiée, coïncidant probablement avec Visual Studio 2019. Je travaillais avec V150.1358.0.
En suivant les instructions de cette réponse, vous obtenez le contrôle dans la boîte à outils du concepteur. Mais une fois déposé sur le formulaire, il ne s'affiche pas. Le contrôle apparaît sous la fiche en tant que composant non visuel.
Cela fonctionne comme prévu selon le support de Microsoft SQL BI . C'est le groupe responsable du contrôle.
Bien que vous ne puissiez toujours pas interagir directement avec le contrôle, ces étapes supplémentaires offrent une solution de contournement afin que le contrôle puisse être redimensionné sur le formulaire. Bien que maintenant visible, le concepteur traite le contrôle comme s'il n'existait pas.
J'ai créé une demande de commentaires à la suggestion du support technique de Microsoft SQL BI. Pensez à voter pour attirer l'attention de Microsoft.
Étapes supplémentaires:
Dans le fichier form.designer.cs du formulaire, ajoutez le contrôle Reportviewer au panneau.
//
// panel1
//
this.panel1.Controls.Add(this.reportViewer1);
Revenez au concepteur du formulaire, vous devriez voir le reportViewer sur le panneau
Vous pouvez maintenant positionner reportViewer en interagissant réellement avec le panneau.
Mise à jour : Microsoft a publié un document le 18 avril 2017 décrivant comment configurer et utiliser l'outil de rapport dans Visual Studio 2017.
Visual Studio 2017 n'a pas l'outil ReportViewer
installé par défaut dans la Boîte à outils. L'installation de l'extension du concepteur de rapports Microsoft Rdlc pour Visual Studio , puis l'ajoutée à la boîte à outils génère un composant non visuel qui apparaît sous le formulaire.
Le support technique de Microsoft m'avait dit qu'il s'agissait d'un bogue, mais à compter du 21 avril 2017, il "fonctionne comme prévu".
Les étapes suivantes doivent être suivies pour chaque projet nécessitant ReportViewer
.
ReportViewer
dans la Boîte à outils, supprimez-le. Mettez en surbrillance, faites un clic droit et supprimez. Édité le 8/7/2019 - Il semble que la version actuelle de l'extension RDLC Report Designer n'interfère plus. Vous en avez besoin pour éditer les rapports.
Si vous avez l'extension Microsoft Rdlc Report Designer pour Visual Studio , désinstallez-la.
Fermez votre solution et redémarrez Visual Studio. Ceci est une étape cruciale, des erreurs se produiront si VS n'est pas redémarré lors du changement de solution.
Tools/NuGet Package Manager/Package Manager Console
)Au PM> Invite, entrez cette commande, le cas est important.
Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms
Vous devriez voir le texte décrivant l'installation du paquet.
Nous pouvons maintenant ajouter temporairement l'outil ReportViewer
à la boîte à outils.
Faites un clic droit dans la boîte à outils et utilisez Choose Items...
Nous devons rechercher le bon DLL qui se trouve dans le dossier solutions Packages
, cliquez donc sur le bouton de navigation.
Dans notre exemple, nous pouvons coller dans le dossier packages comme indiqué dans le texte de Package Manager Console.
C:\Users\jdoe\Documents\Projects\_Test\ReportViewerTest\WindowsFormsApp1\packages
Puis double-cliquez sur le dossier nommé Microsoft.ReportingServices.ReportViewerControl.Winforms.140.340.80
Le numéro de version changera probablement dans le futur.
Puis double-cliquez sur lib
et encore sur net40
.
Enfin, double-cliquez sur le fichier Microsoft.ReportViewer.WinForms.dll
Vous devriez voir ReportViewer
coché dans la boîte de dialogue. Faites défiler vers la droite et vous verrez la version 14.0.0.0 associée.
Cliquez sur OK.
ReportViewer
est maintenant situé dans la Boîte à outils.
Faites glisser l'outil vers le ou les formulaires souhaités.
Une fois terminé, supprimez l’outil ReportViewer
de la boîte à outils. Vous ne pouvez pas l'utiliser avec un autre projet.
Vous pouvez sauvegarder le projet et vous êtes prêt à partir.
N'oubliez pas de redémarrer Visual Studio chaque fois que vous devez ouvrir un projet avec ReportViewer
afin que la DLL soit chargée à partir du bon emplacement. Si vous essayez d'ouvrir une solution avec un formulaire avec ReportViewer
sans redémarrer, vous verrez des erreurs indiquant que le "The variable 'reportViewer1' is either undeclared or was never assigned.
".
Si vous ajoutez un nouveau projet à la même solution, vous devez créer le projet, enregistrer la solution, redémarrer Visual Studio, puis vous devriez pouvoir ajouter le ReportViewer
au formulaire. Je l'ai vu ne pas fonctionner la première fois et apparaître comme un composant non visuel.
Lorsque cela se produit, supprimer le composant du formulaire, supprimer les références Microsoft.ReportViewer.*
du projet, enregistrer et redémarrer fonctionne généralement.
Pour moi, cela a fonctionné selon les trois étapes suivantes:
Ajout du contrôle de la visionneuse de rapports par:
Aller à Gestionnaire de paquets NuGet .
Installation de Microsoft.ReportingServices.ReportViewerControl.Winforms
Pour les WebForms applications:
Ajout du contrôle de la visionneuse de rapports par:
Aller à Gestionnaire de paquets NuGet .
Installation de Microsoft.ReportingServices.ReportViewerControl.WebForms
C'est tout!
Veuillez noter que cette procédure d’ajout des services de génération de rapports décrite par @Rich Shealer ci-dessus sera répétée à chaque fois que vous démarrez un projet différent. Afin d'éviter cela:
Si vous devez peut-être configurer un autre ordinateur (par exemple, à la maison sans Internet), gardez vos installateurs téléchargés du marché dans un endroit sûr, c'est-à-dire:
Récupérez les bibliothèques suivantes à partir des packages ou du dossier bin de l'application que vous avez créée avec les services de génération de rapports qu'il contient:
Installez les 2 composants à partir de 1 ci-dessus
Vous êtes maintenant prêt à partir! L'icône ReportViewer sera ajoutée à votre barre d'outils. Vous trouverez également les modèles Report et ReportWizard ajoutés à votre liste commune de modèles lorsque vous souhaitez ajouter un nouvel élément ... (rapport) à votre projet.
NB: Lors de la configuration à l'aide du gestionnaire de packages Nuget, les modèles Report et ReportWizard sont regroupés sous Reporting. L’utilisation de la méthode décrite ci-dessus n’ajoute toutefois pas le groupe de rapports dans les modèles installés, mais je ne pense pas que ce soit un problème, car cela vous permet d’intégrer rapidement rdlc sans Internet et sans télécharger ce que vous possédez déjà de Nuget à chaque fois!
Si vous êtes comme moi et que vous avez essayé quelques-unes de ces méthodes et que vous êtes bloqué au point que vous avez le contrôle dans la boîte à outils et que vous pouvez le dessiner sur la fiche mais que celle-ci disparaît de la fiche et la place dans les composants, Modifiez le concepteur et ajoutez ce qui suit dans la zone appropriée de InitializeComponent () pour le rendre visible:
this.Controls.Add(this.reportViewer1);
or
[ContainerControl].Controls.Add(this.reportViewer1);
Vous devrez également ajuster manuellement l'emplacement et la taille après avoir ajouté le contrôle.
Ce n’est certes pas une excellente réponse, mais si vous êtes bloqué et avez juste besoin de travailler jusqu’à ce que vous ayez plus de temps pour le résoudre, cela devrait vous aider.
Téléchargez Microsoft Rdlc Report Designer pour Visual Studio à partir de ce lien. https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftRdlcReportDesignerforVisualStudio-18001
Microsoft explique les étapes en détail:
Les étapes suivantes résument l'article ci-dessus.
Ajout du contrôle Report Viewer à un nouveau projet Web:
Créez un nouveau site Web ASP.NET vide ou ouvrez un projet ASP.NET existant.
Installez le package de contrôle NuGet du visualiseur de rapports via la console du gestionnaire de packages NuGet. Depuis Visual Studio -> Outils -> NuGet Package Manager -> Console du gestionnaire de packages
Install-Package Microsoft.ReportingServices.ReportViewerControl.WebForms
Ajoutez une nouvelle page .aspx au projet et enregistrez l'assembly de contrôle Report Viewer à utiliser dans la page.
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
Ajoutez un ScriptManagerControl à la page.
Ajoutez le contrôle Report Viewer à la page. L'extrait ci-dessous peut être mis à jour pour référencer un rapport hébergé sur un serveur de rapports distant.
<rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote">
<ServerReport ReportPath="" ReportServerUrl="" /></rsweb:ReportViewer>
La dernière page devrait ressembler à ceci.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Sample" %>
<%@ Register Assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
<!DOCTYPE html>
<html xmlns="https://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title></title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote">
<ServerReport ReportServerUrl="https://AContosoDepartment/ReportServer" ReportPath="/LatestSales" />
</rsweb:ReportViewer>
</form>
</body>