c# - Visual Studio 2017 RC 中缺少 Reportviewer 工具

标签 c# wpf windows-forms-designer visual-studio-2017

我刚开始在名为 Visual Studio 2017 RC 的新版 Visual Studio 中编写报告软件,但刚刚注意到 windows 窗体和 WPF 应用程序模板中都缺少核心报告查看工具。谁能告诉我为什么报表查看器工具从 Visual Studio 2017 中消失了?没有它真的有麻烦。在新的 Visual Studio 中是否有其他替代工具可以使用此工具?

最佳答案

** 更新**:11/19/2019

微软发布新版控件150.1400.0在他们的 Nuget 库中。我的简短测试表明它在表单设计器中再次起作用,其中 150.1357.0150.1358.0没有。这包括能够在控件本身上调整大小和修改 ReportViewer 任务。

** 更新**:8/18/2019

删除最新版本并回滚到 150.900.148.0似乎可以在我使用 VS2017 和 VS2019 的多台计算机上工作。

您可以在 Nuget 解决方案包管理器中回滚到 150.900.148。它的工作原理与以前的版本类似。使用下拉框选择旧版本。

enter image description here

手动删除对 150.900 版本 ReportViewer 的引用并阅读它们可能比修复它们更容易。

请记住在更改工具箱条目后重新启动 Visual Studio。

更新 : 8/7/2019

较新版本的 ReportViewer 控件已发布,可能与 Visual Studio 2019 一致。我使用的是 V150.1358.0。

遵循此答案中的说明可以获得设计者工具箱中的控制权。但是一旦放在表单上,​​它就不会显示。该控件作为非可视组件显示在表单下方。

这是根据 Microsoft SQL BI 支持设计的。这是负责控制的组。

虽然您仍然无法直接与控件交互,但这些附加步骤提供了一种解决方法,以便可以在窗体上调整控件的大小。虽然现在可见,但设计者将控件视为不存在。

我根据 Microsoft SQL BI 支持的建议创建了一个反馈请求。请考虑对其进行投票以引起 Microsoft 的注意。

Microsoft Azure Feedback page - Restore Designtime features of the WinForms ReportViewer Control

附加步骤:

  • 将报表查看器添加到 WinForm 后
  • 将面板控件添加到 WinForm。
  • 在表单的 form.designer.cs 文件中,将 Reportviewer 控件添加到面板。
      // 
      // panel1
      // 
      this.panel1.Controls.Add(this.reportViewer1);
    
  • 返回表单设计器,您应该会在面板上看到 reportViewer
  • 在属性面板的控件列表下拉菜单中选择 ReportViewer
  • 将 reportViewer 的 Dock 属性设置为 Fill

  • 现在您可以通过与面板实际交互来定位 reportViewer。

    更新 : 微软发布了document 2017 年 4 月 18 日,描述了如何在 Visual Studio 2017 中配置和使用报告工具。

    Visual Studio 2017 没有 ReportViewer工具默认安装在工具箱中。安装扩展 适用于 Visual Studio 的 Microsoft Rdlc 报表设计器 然后将其添加到 ToolBox 会导致出现在表单下方的非可视组件。

    Microsoft 支持人员告诉我这是一个错误,但截至 2017 年 4 月 21 日,它“按设计工作”。

    每个需要 ReportViewer 的项目都需要遵循以下步骤.
  • 如果您有 ReportViewer在工具箱中,将其删除。突出显示,右键单击并删除。
  • 您必须有一个打开表单的项目才能执行此操作。

  • 2019 年 7 月 8 日编辑 - 看起来 RDLC 报告设计器扩展的当前版本不再干扰。您需要它来实际编辑报告。
  • 如果您有 适用于 Visual Studio 的 Microsoft Rdlc 报表设计器 已安装扩展程序,卸载它。
  • 关闭您的解决方案并重新启动 Visual Studio。这是
    关键的一步,如果不重启VS会报错
    在解决方案之间切换。
  • 打开您的解决方案。
  • 打开 NuGet 包管理器控制台 ( Tools/NuGet Package Manager/Package Manager Console )
  • 在 PM> 提示符下输入此命令,大小写很重要。
    Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms
    您应该会看到描述软件包安装的文本。

  • 现在我们可以临时添加 ReportViewer工具到工具箱。
  • 在工具箱中右击并使用 Choose Items...
  • 我们需要浏览到位于解决方案中的正确 DLL Packages文件夹,所以点击浏览按钮。
  • 在我们的示例中,我们可以粘贴到包管理器控制台的文本中所示的包文件夹中。
    C:\Users\jdoe\Documents\Projects\_Test\ReportViewerTest\WindowsFormsApp1\packages
  • 然后双击名为的文件夹Microsoft.ReportingServices.ReportViewerControl.Winforms.140.340.80
    版本号将来可能会更改。
  • 然后双击 lib再次在 net40 .
  • 最后,双击文件Microsoft.ReportViewer.WinForms.dll
    你应该看到 ReportViewer在对话框中检查。向右滚动,您将看到与其关联的版本 14.0.0.0。
  • 单击确定。
  • ReportViewer现在位于工具箱中。
  • 将该工具拖到所需的形式。
  • 完成后,删除 ReportViewer工具箱中的工具。您不能将它与其他项目一起使用。
  • 您可以保存项目并且一切顺利。

  • 请记住在任何需要使用 ReportViewer 打开项目时重新启动 Visual Studio以便从正确的位置加载 DLL。如果您尝试使用带有 ReportViewer 的表单打开解决方案无需重新启动,您将看到错误提示“The variable 'reportViewer1' is either undeclared or was never assigned. “。

    如果将新项目添加到创建项目所需的同一解决方案中,保存解决方案,重新启动 Visual Studio,然后您应该能够添加 ReportViewer到表格。我第一次看到它不起作用并显示为非视觉组件。

    发生这种情况时,从表单中删除组件,删除 Microsoft.ReportViewer.*来自项目的引用,保存和重新启动通常有效。

    关于c# - Visual Studio 2017 RC 中缺少 Reportviewer 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40713705/

    相关文章:

    c# - 如何使用 CSV 文件中的新数据刷新/更新 DataGridView?

    c# - 如何在 VS 2013 的立即窗口中执行 LINQ 和/或 foreach?

    wpf - 您的 WPF 应用程序应该有多大才能开始使用 MVVM

    c# - Windows 窗体设计器,设计背后的基本原理 > GenerateMember

    c++ - Visual Studio 2017 - 找不到 Visual C++ Windows 窗体

    c# - 将功能区文本框上的 IsEnabled 设置为 true 什么都不做

    c# - C# 和 regex101 之间的正则表达式结果不同

    c# - LINQ 在 Where 字符串中聚合

    c# - 是否可以在 C# 中的远程服务器上创建 DSN

    wpf - 如果第一个属性是 "undefined",则绑定(bind)到第二个属性