Инструмент Reportviewer отсутствует в Visual Studio 2017 RC

Я только начал писать программное обеспечение для создания отчетов в новой версии Visual Studio под названием Visual Studio 2017 RC, но только что заметил, что основные инструменты просмотра отчетов отсутствуют как в формах Windows, так и в шаблоне приложения WPF. Может ли кто-нибудь сказать мне, почему инструмент просмотра отчетов исчез из Visual Studio 2017? Без него реально беда. Есть ли альтернатива работе с этим инструментом в новой визуальной студии?


person Omar Sharif    schedule 21.11.2016    source источник


Ответы (5)


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

Microsoft выпустила новую версию элемента управления 150.1400.0 в своей библиотеке Nuget. Мое короткое тестирование показывает, что он снова работает в дизайнере форм, где 150.1357.0 и 150.1358.0 не работали. Это включает в себя возможность изменять размер и модифицировать задачи ReportViewer на самом элементе управления.

** Обновление**: 18 августа 2019 г.

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

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

введите описание изображения здесь

Возможно, будет проще вручную удалить ссылки на публикацию 150 900 версий ReportViewer и прочитать их, чем исправлять их.

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

Обновление: 07.08.2019

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • If you have ReportViewer in the Toolbox, remove it. Highlight, right-click and delete.
    • You will have to have a project with a form open to do this.

Отредактировано 07.08.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, которая находится в папке решений 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.* из проекта, сохранение и перезапуск.

person Rich Shealer    schedule 12.04.2017
comment
@Rich Shealer, это тот же процесс для проекта MVC? - person Kinjal Patel; 30.11.2017
comment
@KinjalPatel Я не работаю с MVC, поэтому не могу дать вам качественный ответ. - person Rich Shealer; 01.12.2017
comment
Еще одна вещь, которая повлияла на меня: мне пришлось переключиться с .NET Framework 4 Client Profile на .NET Framework 4. - person Conrad; 28.02.2018
comment
Есть ли проблемы с предыдущей версией или с предыдущей? Потому что я сделал свой проект в Vs2015 Enterprise, и там у меня есть встроенный отчет RDLC? - person Ahmad; 04.04.2018
comment
Это веб-формы! - person FindOutIslamNow; 23.05.2018
comment
это работает. но перезапускать Visual Studio каждый раз, когда вам нужно открыть проект с помощью ReportViewer, действительно неприемлемо. - person Cee McSharpface; 15.08.2018
comment
Спаси день для меня :) - person Jhabar; 06.10.2018
comment
Я могу подтвердить, что эти шаги не работают с Microsoft.ReportingServices.ReportViewerControl.Winforms 150.1358.0. Что сработало для меня, так это понизить расширение до 140.1000.523. - person Ilyas Foo; 04.08.2019
comment
@IlyasFoo - Спасибо за подтверждение. Пожалуйста, смотрите мое обновление в верхней части этого ответа. Существует ссылка для обратной связи с Microsoft, по которой можно проголосовать, чтобы Microsoft исправила это. - person Rich Shealer; 07.08.2019

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

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

  1. Обновление Visual Studio до последней сборки.
  2. Adding Report / Report Wizard to the Add/New Item menu by:
    • Going to Visual Studio menu Tools/Extensions and Updates
    • Выберите В сети на левой панели.
    • Найдите Конструктор отчетов Microsoft Rdlc для 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 в окно Toolbox 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 в окно Toolbox Visual Studio.

Это все!

person Jack J    schedule 21.06.2018

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

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

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

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

  4. Добавьте dll из 2 выше в качестве ссылок (Проект> Ссылки> Добавить...)
  5. (Необязательно) Добавьте вкладку «Отчеты» на панель инструментов.
  6. Добавить элементы на вкладку «Отчетность»
  7. Перейдите в папку bin или туда, где у вас есть вышеуказанные DLL, и добавьте их.

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

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

person Hannington Mambo    schedule 07.11.2017
comment
Привет @Hannington Mambo, спасибо за ваше полезное решение. Я выполнил ваши шаги, и теперь я вижу элемент управления просмотрщиком отчетов в своем наборе инструментов, и я могу добавить его в свою форму, но у меня нет элементов отчета и мастера отчетов в моем Добавить новый элемент панель. Не могли бы вы мне помочь... - person M_Mogharrabi; 19.02.2018
comment
Рад, что помог! Я смог получить их в своих установленных шаблонах «Добавить новый элемент». Я объяснил, что группа шаблонов отчетов будет недоступна. Иногда вам может понадобиться закрыть vs, удалить и добавить dll - person Hannington Mambo; 20.02.2018

Загрузите конструктор отчетов Microsoft Rdlc для 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 управления средством просмотра отчетов с помощью консоли диспетчера пакетов NuGet. Из Visual Studio -> Инструменты -> Диспетчер пакетов NuGet -> Консоль диспетчера пакетов

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

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

person Mohammed Osman    schedule 21.11.2018
comment
Лучшие инструкции, которые я нашел по этому вопросу. Все работало, как описано, до последнего шага: ReportViewer теперь находится в панели инструментов. Это не так. Есть предположения? - person Nate; 04.01.2019
comment
Microsoft отказывается от SSRS? - person Nate; 04.01.2019
comment
@Nate Вы имеете в виду, что Microsoft не будет поддерживать SSRS в будущем? если вы имеете в виду это, статья выше от Microsoft. Так что Microsoft до сих пор поддерживает SSRS. - person Mohammed Osman; 05.01.2019

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

this.Controls.Add(this.reportViewer1);

or

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

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

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

person Daniel P    schedule 13.07.2019
comment
В итоге я понизил свою версию с помощью диспетчера пакетов nuget до следующей версии, и она начала вести себя нормально: Microsoft.ReportingServices.ReportViewerControl.Winforms, версия 140.1000.523. - person Daniel P; 13.07.2019