Инструмент Reportviewer отсутствует в visual studio 2017 RC

Я только начал писать программное обеспечение для отчетности в новой версии визуальной студии с именем visual studio 2017 RC, но только заметил, что основные средства анализа отчетов отсутствуют как из окон, так и из шаблона приложения WPF. Может ли кто-нибудь сказать мне, почему инструмент reportviewer исчез из визуальной студии 2017? На самом деле без проблем. Есть ли альтернатива работе с этим инструментом в новой визуальной студии?

Ответы

Ответ 1

** Обновление **: 18.08.2009

Удаление последней версии и откат к 150.900.148.0, похоже, работает на нескольких компьютерах, которые я использую с VS2017 и VS2019.

Вы можете вернуться к 150.900.148 в менеджере пакетов решений Nuget. Работает аналогично предыдущим версиям. Используйте раскрывающийся список, чтобы выбрать более старую версию.

enter image description here

Может быть проще вручную удалить ссылки на 150.900 версий ReportViewer и прочитать их, чем исправить.

Не забудьте перезапустить Visual Studio после изменения записи панели инструментов.

Обновление: 7/7/2019

Была выпущена более новая версия элемента управления ReportViewer, вероятно, совпадающая с Visual Studio 2019. Я работал с V150.1358.0.

Следуя указаниям в этом ответе, вы получаете управление в панели инструментов дизайнера. Но однажды упал на форму, он не отображается. Элемент управления отображается ниже формы как невизуальный компонент.

Это работает так, как разработано в соответствии с поддержкой Microsoft SQL BI. Это группа, ответственная за контроль.

Несмотря на то, что вы по-прежнему не можете напрямую взаимодействовать с элементом управления, эти дополнительные шаги дают обходной путь, поэтому размер элемента управления можно изменить в форме. Хотя теперь это видно, дизайнер обрабатывает элемент управления так, как если бы он не существовал.

Я создал запрос обратной связи по предложению поддержки Microsoft SQL BI. Чтобы привлечь внимание Microsoft, рассмотрите возможность голосования.

Страница обратной связи Microsoft Azure - восстановление функций Designtime элемента управления WinForms ReportViewer

Дополнительные шаги:

  • После добавления средства просмотра отчетов в WinForm
  • Добавьте элемент управления Panel в WinForm.
  • В файле form.designer.cs формы добавьте элемент управления Reportviewer на панель.

      // 
      // panel1
      // 
      this.panel1.Controls.Add(this.reportViewer1);
    
  • Вернитесь к конструктору форм, вы должны увидеть ReportViewer на панели

  • На панели "Свойства" выберите ReportViewer в раскрывающемся списке элементов управления
  • .Установите для свойства Dock reportViewer значение Fill

Теперь вы можете позиционировать ReportViewer, фактически взаимодействуя с панелью.

Обновление: Microsoft выпустила документ 18 апреля 2017 года, в котором описывается, как настроить и использовать средство создания отчетов в Visual Studio 2017.

Visual Studio 2017 не имеет инструмента ReportViewer, установленного по умолчанию в панели инструментов. Установка расширения Microsoft Rdlc Report Designer для Visual Studio и добавление его в панель инструментов приводит к невизуальному компоненту, который отображается под формой.

Служба поддержки Microsoft сообщила мне, что это ошибка, но по состоянию на 21 апреля 2017 года она "работает как задумано".

Следующие шаги необходимо выполнить для каждого проекта, для которого требуется ReportViewer.

  • Если у вас есть ReportViewer на панели инструментов, удалите его. Выделите, щелкните правой кнопкой мыши и удалите.
    • Для этого вам понадобится проект с открытой формой.

Отредактировано 7/7/2019 - похоже, текущая версия расширения RDLC Report Designer больше не мешает. Это необходимо для редактирования отчетов.

  • Если у вас установлено расширение Microsoft Rdlc Report Designer для Visual Studio, удалите его.

  • Закройте свое решение и перезапустите Visual Studio. Это решающий шаг, ошибки произойдут, если VS не перезапустится, когда переключение между решениями.

  • Откройте свое решение.
  • Откройте консоль диспетчера пакетов NuGet (Tools/NuGet Package Manager/Package Manager Console)
  • В приглашении PM> введите эту команду, регистр имеет значение.

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms

    Вы должны увидеть текст, описывающий установку пакета.

Теперь мы можем временно добавить инструмент ReportViewer в ящик для инструментов.

  • Щелкните правой кнопкой мыши на панели инструментов и используйте Choose Items...

  • Нам нужно найти нужную DLL, которая находится в папке solutions 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 из ящика для инструментов. Вы не можете использовать его с другим проектом.

  • Вы можете сохранить проект и все готово.

Не забывайте перезапускать Visual Studio каждый раз, когда вам нужно открыть проект с помощью ReportViewer, чтобы библиотека DLL загружалась из правильного расположения. Если вы попытаетесь открыть решение с помощью формы с ReportViewer без перезапуска, вы увидите ошибки, указывающие на "The variable 'reportViewer1' is either undeclared or was never assigned.".

Если вы добавляете новый проект в то же решение, которое необходимо для создания проекта, сохраните решение, перезапустите Visual Studio, а затем вы сможете добавить ReportViewer в форму. Я видел, что это не работает в первый раз и отображается как невизуальный компонент.

Когда это происходит, удаление компонента из формы, удаление ссылок Microsoft.ReportViewer.* из проекта, сохранение и перезапуск обычно работают.

Ответ 2

Обновление: этот ответ работает с Visual Sudio 2017 и 2019

Для меня это сработало в следующие три этапа:

  1. Обновление Visual Studio до последней сборки.
  2. Добавление мастера отчетов/отчетов в меню Добавить/новый элемент осуществляется с помощью:
    • Переход в меню Visual Studio Инструменты/Расширения и обновления
    • Выберите Online на левой панели.
    • Найдите Microsoft Rdlc Report Designer для Visual Studio
    • Скачайте и установите его.
  3. Добавление элемента управления средства просмотра отчетов с помощью:

    • Зайдите в диспетчер пакетов NuGet.

    • Установка Microsoft.ReportingServices.ReportViewerControl.Winforms

    • Перейдите в папку, содержащую Microsoft.ReportViewer.WinForms.dll: % USERPROFILE% \. Nuget\packages\microsoft.reportingservices.reportviewercontrol.winforms\140.1000.523\lib\net40
    • Перетащите файл Microsoft.ReportViewer.WinForms.dll и поместите его в окне Visual Studio Панель инструментов.

Для приложений WebForms:

  1. Такой же.
  2. Такой же.
  3. Добавление элемента управления средства просмотра отчетов с помощью:

    • Зайдите в диспетчер пакетов NuGet.

    • Установка Microsoft.ReportingServices.ReportViewerControl.WebForms

    • Перейдите в папку, содержащую файл Microsoft.ReportViewer.WebForms.dll: % USERPROFILE% \. Nuget\packages\microsoft.reportingservices.reportviewercontrol.webforms\140.1000.523\lib\net40
    • Перетащите файл Microsoft.ReportViewer.WebForms.dll и поместите его в окне Visual Studio Панель инструментов.

Это все!

Ответ 3

Обратите внимание, что эта процедура добавления служб отчетов, описанных выше, будет повторяться каждый раз при запуске другого проекта. Чтобы избежать этого:

  • Если вам может понадобиться настроить другой компьютер (например, дома без Интернета), тогда держите загруженных инсталляторов с рынка где-то в безопасности, а именно:

    • Microsoft.DataTools.ReportingServices.vsix и
    • Microsoft.RdlcDesigner.vsix
  • Извлеките следующие библиотеки из пакетов или папки bin приложения, которое вы создали с помощью служб отчетов:

    • Microsoft.ReportViewer.Common.dll
    • Microsoft.ReportViewer.DataVisualization.dll
    • Microsoft.ReportViewer.Design.dll
    • Microsoft.ReportViewer.ProcessingObjectModel.dll
    • Microsoft.ReportViewer.WinForms.dll
  • Установите 2 компонента из 1 выше

  • Добавьте dll из 2 выше в качестве ссылок (Project > References > Add...)
  • (необязательно) Добавить вкладку "Отчеты" на панель инструментов
  • Добавить элементы на вкладку "Отчеты".
  • Перейдите в папку bin или где у вас есть вышеупомянутые DLL и добавьте их

Теперь тебе хорошо! Значок ReportViewer будет добавлен на вашу панель инструментов, и вы также найдете шаблоны отчетов и ReportWizard, добавленные в общий список шаблонов, если вы хотите добавить новый проект... (отчет) в свой проект

Примечание. При настройке с помощью диспетчера пакетов Nuget шаблоны Report и ReportWizard сгруппированы в разделе "Отчетность". Однако использование моего метода, описанного выше, не добавляет группировку Reporting в установленные шаблоны, но я не думаю, что это проблема, поскольку она позволяет вам быстро интегрировать rdlc без Интернета и не загружать то, что у вас уже есть в Nuget каждый раз!

Ответ 4

Загрузите Microsoft Rdlc Report Designer для Visual Studio по этой ссылке. https://marketplace.visualstudio.com/items?itemName=ProBITools.MicrosoftRdlcReportDesignerforVisualStudio-18001

Microsoft объясняет шаги в деталях:

https://docs.microsoft.com/en-us/sql/reporting-services/application-integration/integrating-reporting-services-using-reportviewer-controls-get-started?view=sql-server-2017

Следующие шаги суммируют вышеупомянутую статью.

Добавление элемента управления Report Viewer в новый веб-проект:

  1. Создайте новый пустой веб-сайт ASP.NET или откройте существующий проект ASP.NET.

  2. Установите пакет NuGet элемента управления Report Viewer через консоль диспетчера пакетов NuGet. Из Visual Studio → Инструменты → Диспетчер пакетов NuGet → Консоль диспетчера пакетов

    Install-Package Microsoft.ReportingServices.ReportViewerControl.WebForms
    
  3. Добавьте новую страницу .aspx в проект и зарегистрируйте сборку элемента управления Report Viewer для использования на этой странице.

    <%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
    
  4. Добавьте ScriptManagerControl на страницу.

  5. Добавьте элемент управления Report Viewer на страницу. Приведенный ниже фрагмент может быть обновлен для ссылки на отчет, размещенный на удаленном сервере отчетов.

     <rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote">
     <ServerReport ReportPath="" ReportServerUrl="" /></rsweb:ReportViewer>
    

Последняя страница должна выглядеть следующим образом.

<%@ 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>

Ответ 5

Если вы похожи на меня и попробовали несколько из этих методов и застряли в том моменте, когда у вас есть элемент управления в наборе инструментов, и вы можете нарисовать его в форме, но он исчезает из формы и помещает его в компоненты, тогда просто отредактируйте конструктор и добавьте следующее в соответствующую область InitializeComponent(), чтобы сделать его видимым:

this.Controls.Add(this.reportViewer1);

or

[ContainerControl].Controls.Add(this.reportViewer1);

Вам также нужно будет внести коррективы в расположение и размер вручную после добавления элемента управления.

Конечно, это не очень хороший ответ, но если вы застряли и вам просто нужно закончить работу, пока у вас не будет больше времени, чтобы это выяснить, это должно помочь.