майкрософт репорт вивер что это
Использование элемента управления WinForms ReportViewer
Для просмотра отчетов, развернутых на сервере отчетов, и отчетов, существующих в локальной файловой системе, можно использовать элемент управления WinForms ReportViewer для подготовки отчетов к просмотру в приложении Windows.
Добавление элемента управления ReportViewer в приложение Windows
Создайте новое приложение Windows с помощью Microsoft Visual C# или Microsoft Visual Basic.
Открыть существующий проект приложения Windows и добавить новую форму.
Укажите элемент управления ReportViewer в окне Панель элементов. Если окно Панель элементов не отображается, к нему можно получить доступ из меню Вид, выбрав пункт Панель элементов.
Перетащите элемент управления ReportViewer в область конструктора Windows Form.
В форму будет добавлен элемент управления ReportViewer с именем reportViewer1.
После добавления элемента управления в форму появляется смарт-тег Задачи ReportViewer и выводится приглашение выбрать отчет.
Если требуемый отчет развернут на сервере отчетов, выберите параметр из раскрывающегося списка Выбор отчета. После выбора параметра на экране появляются два свойства : URL-адрес сервера отчетов и Путь к отчету. Свойство URL-адрес сервера отчетов задает адрес сервера отчетов, а свойство Путь к отчету задает полный путь к подготавливаемому к просмотру отчету.
Если просматриваемый отчет является отчетом в локальном режиме, выберите параметр Создать новый отчет для запуска конструктора отчетов или отчет, который уже является частью существующего проекта.
Просмотр отчетов в режиме удаленной обработки
В следующем примере показана подготовка к просмотру отчета, развернутого на сервере отчетов при помощи элемента управления WinForms ReportViewer. В этом примере используется отчет Sales Order Detail, который включен в проект с образцами отчетов AdventureWorks2012.
VB.NET
Просмотр отчетов в режиме локальной обработки
В следующем примере показана подготовка к просмотру отчета, который является частью приложения Windows и не был помещен на сервер отчетов.
Добавление отчета «Сведения о заказе на продажу» в приложение Windows
Открыть проект Windows, в который будет добавлен отчет.
В меню Проект выберите пункт Добавить существующий элемент.
Перейти в папку, в которой были установлены проекты образцов отчетов AdventureWorks2012.
Чтобы скачать примеры отчетов, перейдите в раздел Примеры отчетов AdventureWorks 2012.
Выберите файл Sales Order Detail.rdl и нажмите кнопку Добавить.
Файл «Сведения о заказе на продажу.rdl» теперь станет частью проекта.
Щелкните правой кнопкой мыши файл Sales Order Detail.rdl в обозревателе решений и выберите команду Переименовать. Переименуйте отчет в Сведения о заказах на продажу.rdlc и нажмите клавишу ВВОД.
Если обозреватель решений не отображается, его можно открыть из меню Вид, выбрав пункт Обозреватель решений.
Переименование расширения из rdl в rdlc позволит редактировать отчет при помощи конструктора отчетов для MicrosoftVisual Studio 2005.
После переименования отчета выберите файл и перейдите в окно «Свойства». Для свойства Копировать в выходной каталог задайте значение Копировать более новые.
В следующем примере кода создается набор данных для данных о заказе на продажу, а затем подготавливается к просмотру отчет «Сведения о заказе на продажу» в локальном режиме.
В качестве практической части будет рассмотрено создание приложения, отображающего отчеты для торговой системы Супермаг (которая, собственно, и использует базу Oracle).
Одним из плюсов портативной дистрибуции клиента Oracle является то, что его стандартная установка — не самое приятное занятие. А если еще устанавливать и Report Viewer, то процесс установки на несколько машин рискует стать утомительным занятием. Конечно же, в качестве альтернативы можно использовать ClickOnce, но при дистрибуции с помощью ClickOnce также вполне можно копировать папку с библиотеками как это делается в данном примере.
Необходимые библиотеки для десктоп приложения со портативным доступом к Oracle
Необходимо скачать Oracle Instant Client. Если вы используете локализованное приложение, то лучше вам взять пакет basic, он хоть и занимает размер около 100Mb, но зато, в отличие от «лайтового» (light) 30 мегабайтного, гарантирует вам работу с кириллицей.
Распаковывает архив и берем из него 2 файлика:
oci.dll (аббревиатура от Oracle Call Interface);
orannzsbb11.dll либо orannzsbb12.dll (если вы будете использовать 12-ю версию).
Необходим еще и третий файлик:
Если вы взяли версию basic, то это будет — oraociei11.dll или oraociei12.dll (опять же для версии 12).
Если вы взяли версию light — oraociicus11.dll или oraociicus12.dll (уже не буду упоминать, что второй файл для версии 12 – это и так всем понятно).
А еще необходим Oracle Data Provider — ODP.NET (лучше взять XCopy версию, — она меньше размером), распаковать и найти 2 файла:
Если вы хотите использовать версию 12, можете скачать и Oracle Instant Client и ODP в одном файле ODAC (Oracle Data Access Components) по ссылке: www.oracle.com/technetwork/topics/dotnet/downloads/index.html
Необходимые библиотеки для приложения со портативным Report Viewer
В качестве портативной дистрибуции Report Viewer-а возьмем версию 2010.
Версию 2013 в качестве версии для портативной дистрибуции я не брал. После того, как я обнаружил, что в ней отсутствует Microsoft.ReportViewer.ProcessingobjectModel.dll, у меня произошел «разрыв шаблона» и я решил, что вполне устроят отчеты 2010-го года. Если вы знаете, как создать портативную дистрибуцию версии 2013-го, жду ваших комментариев. Можно было бы даже конкурс объявить, да вот незадача — приза нет.
Качаем Microsoft Report Viewer Redistributable 2010 и распаковаем exe файл как архив.
Среди распакованных файлов находим reportviewer_redist2010core.cab.
Продолжаем «матрешку» и распаковываем в свою очередь и этот файл.
Находим файлы и переименовываем следующим образом:
FL_Microsoft_ReportViewer_Common_dll_117718_117718_x86_ln.3643236F_FC70_11D3_A536_0090278A1BB8
переименовываем в Microsoft.ReportViewer.Common.dll
FL_Microsoft_ReportViewer_Processingobject_125592_125592_x86_ln.3643236F_FC70_11D3_A536_0090278A1BB8
переименовываем в Microsoft.ReportViewer.ProcessingobjectModel.dll
FL_Microsoft_ReportViewer_WebForms_dll_117720_117720_x86_ln.3643236F_FC70_11D3_A536_0090278A1BB8
переименовываем в Microsoft.ReportViewer.WebForms.dll
FL_Microsoft_ReportViewer_WinForms_dll_117722_117722_x86_ln.3643236F_FC70_11D3_A536_0090278A1BB8
переименовываем в Microsoft.ReportViewer.WinForms.dll
Если на компьютере разработчика установлен Oracle Client и Report Viewer (а он должен быть установлен обязательно), ссылки на эти файлы можно даже на задавать, а просто скопировать их в папки с exe (в папки Debug и Release проекта). А вот Oracle.DataAccess.dll необходимо обязательно поместить в папку проекта и установить свойство «Копировать локально» в какой-нибудь из двух вариантов копирования.
Перед тем, как запустить поиск dll система проверяет не загружена ли dll уже в память, а также не присутствует ли dll в списке уже известных dll (попробуйте посмотреть список в реестре по адресу HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\KnownDLLs).
Алгоритм поиска dll зависит от некоторых факторов (например, от того, установлен ли режим SafeDllSearchMode), но приблизительно таков (в примере SafeDllSearchMode выключен):
1. Директория, из которой запускается приложение;
2. Текущая директория;
3. Системная директория. Можно использовать функцию GetSystemDirectory для получения пути к этой директории;
4. 16-ти битная системная директория;
5. Директория Windows. Можно использовать функцию GetWindowsDirectory;
6. Папки, которые указаны в системной переменной PATH.
Что такое системная переменная PATH и где она находится, смотрите наглядно на следующем скриншоте:
Теперь перейдем к практической части.
В приложение WPF (а для меня XAML более предпочтителен, чем устаревшие Forms в качестве редактора компоновки) компонент Report Viewer добавляется с помощью элемента управления WindowsFormsHost.
Чтобы пример не выглядел бесполезным, получим в нем данные из истории документа.
Для хранения данных, необходимых отчету, создадим класс:
Теперь мы может создать файл шаблона внешнего вида нашего отчета (Для визуального редактора на компьютере разработчика при установке Visual Studio должен быть выбран пункт Microsoft SQL Server Data Tools).
Добавим в проект файл отчета (Reporting – Отчет). Установим значение свойства «Копировать локально» в «Копировать, если новее». После чего открываем только что созданный файл отчета и заходим на закладку «Источники данных». Кликнем «Добавить новый источник данных», выбираем типом «Объект», в списке объектов раскрываем наш проект и находим в нем наш класс ReportDataSM, который и выделяем:
Далее для отображения строк с данными добавим в отчет таблицу. При добавлении на запрос свойства набора данных выберем наш источник данных и зададим ему какое-нибудь имя (в примере DataSet1):
Этот источник данных будет указан в табликсе таблицы в свойстве DataSetName. Файл rdlc можно редактировать не только с помощью визуального редактора, но также и с помощью редактора XML (таким способом удобно удалять старые ненужные данные).
Устанавливаем столбцам значения из данных нашего массива (кликая на строки – это просто и интуитивно понятно, объяснять подробно не буду).
Рассмотрим код
Так как замораживать интерфейс — это очень плохая практика, выборку данных запустим в отдельном потоке. Для хранения данных используем конкурентную универсальную (generic) коллекцию класса ReportDataSM. Добавим в объявления переменных (в начало класса):
После инициализируем ее где-нибудь в коде:
Раз данные мы решили получать, не блокируя интерфейс, для вызова метода асинхронно нам понадобится делегат:
В этом примере делегат принимает одно строковое значение в качестве параметра.
Параметром будет идентификатор документа, для которого необходимо получить данные по истории изменений.
Методом, который является реализацией делегата, пусть будет метод с названием getDataMethod.
Привожу упрощенный код реализации метода получения данных (без обработки возможных ошибок):
Вызываем этот метод асинхронно с помощью:
Обратите внимание на метод CompletedCallback, который передается в качестве параметра.
Его реализация необходима для того, чтобы после завершения нашего вызываемого метода запустить какой-либо другой метод. В нашем случае после извлечения данных нужно привязать эти данные к отчету и обновить интерфейс.
Но у нас есть загвоздка в том, что интерфейс мы можем обновлять только из потока приложения.
Для этого мы вызовем метод обновления интерфейса приложения из потока диспетчера. То есть содержимым нашего метода CompletedCallback будет:
Опять же, для вызова метода асинхронно нам понадобился делегат, который на этот раз не принимает никаких параметров. Добавим его в начало нашего кода:
Должно получиться примерно такое вот приложение:
Поддержка версий средства просмотра отчетов Сurrent Branch
Область применения: Microsoft Report Viewer версии 150.900.148 и выше
Элемент управления Microsoft Report Viewer совместим со службами SQL Server Reporting Services и сервером отчетов Power BI, к которым применяется современная политика жизненного цикла поддержки Майкрософт. Эти сведения относятся как к версиям ASP.NET, так и к версиям WinForms, распространяемым посредством NuGet. Все выпущенные версии доступны через NuGet. Исправления, компоненты и прочие обновления предоставляются для последней версии. Для получения обновлений требуются последние версии. Для средства просмотра отчетов продолжают выпускаться обновления для системы безопасности и критические обновления. Мы уведомляем о любых изменениях в политике поддержки не позднее чем за один год до их внесения.
Журнал версий для элемента управления «Средство просмотра отчетов» доступен по следующим ссылкам:
Сочетание сервера приложений и сервера отчетов
Некоторые функции элемента управления Report Viewer зависят от стандартного поведения операционной системы. Поэтому для них может требоваться использование одной и той же версии как для клиента (сервер приложений, на котором работает элемент управления Report Viewer), так и для сервера (с Reporting Services). Поддерживаются следующие сочетания сервера приложений и сервера отчетов:
microsoft report viewer 2012 runtime
Чтобы смотреть статистику по станции(ям) по части обновлений нужен пакет : Microsoft Report Viewer 2008. Такая ошибка возникает когда переходите: Win + X — Control Panels — Administrative Tools — Update Services — Computers — All Computer и в Вашей группе(ах) щелкаете левой кнопкой мыши по компьютеру и в ответ вместо отчета получает вот такое вот сообщение об ошибке.
На заметку: данная ошибка справедлива и на системе под управлением Windows Server 2008 R2 и Windows Server 2012 R2
Установить недостающее просто : нужно лишь установить дополнение именуемое, как .NET Framework через Server Manager: Dashboard — Add roles and features
а после для принятия изменение нужно перезагрузить сервер с ролью Windows Update, но перед этим скачать с сайта Майкрософт пакет: Microsoft Report Viewer 2008 SP1 Redistributable (English, я не использую в рабочей среде системы ориентированные на Russian интерфейс)
После чего будет доступна отчетная информация по компьютеру с указанием какие обновления поставились, а почему какие нет, но для принятия изменений необходимо перезапустить оснастку управления обновлениями и можно формировать отчет щелкнув по любому компьютеру.
На этом у меня все, я прощаюсь, с уважением автор блога Олло Александр aka ekzorchik.
Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:
Поблагодари автора и новые статьи
будут появляться чаще 🙂
Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047
Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.
This is an archive of the posts published to LessThanDot from 2008 to 2018, over a decade of useful content. While we’re no longer adding new content, we still receive a lot of visitors and wanted to make sure the content didn’t disappear forever.
When you install Visual studio 2012 RTM you get, amongst some other stupid surprises, a new version of the Microsoft reportviewer control. Hooray.
There are worst things in life, except that all my clients have reportviewer 2010 installed. But that was quickly fixed, just download the new redistributable.
Except the lastest you can find out there is the beta version.
And how do I know this is the same version I have on my dev machine??
As you might see those are not exactly the same version but who cares it’s such a tiny difference the RTM ends in 16 and the beta ends in 11. But I can tell you it works.
Except that this time you also have to install the sqlclrtypes perquisite.
Please someone at Microsoft instead of making new icons and themes and Uppercase menus, get your act together and check these things before you start sending things out. It’s not that hard, it’s called a checklist.
Oh, and there is an x86 and x64 version of the SQLSysClrTypes installer and they just happen to share the same name, joy oh joy.
Microsoft Report Viewer 2012 Runtime redistributable package DLL’s for Web based applications
Dependencies
This package has no dependencies.
GitHub Usage
This package is not used by any popular GitHub repositories.
Version History
Version | Downloads | Last updated |
---|---|---|
11.0.3452 | 129 397 | 05.07.2015 |
- last updated 05.07.2015 Project SiteContact ownersReportDownload package (3.53 MB) Open in Package Explorer
Statistics
- 129 397 total downloads 129 397 downloads of current version 80 downloads per day (avg)
Owners
Authors
Share
Got questions about NuGet or the NuGet Gallery?
Find out the service status of NuGet.org and its related services.
Read the Frequently Asked Questions about NuGet and see if your question made the list.
Интеграция служб Reporting Services с помощью элементов управления средства просмотра отчетов
Элементы управления средства просмотра отчетов можно использовать для интеграции отчетов RDL Reporting Services в приложения WebForms и WinForms. Дополнительные сведения о последних обновлениях см. в статье с описанием изменений.
Добавление элемента управления средства просмотра отчетов в новый веб-проект
Создайте новый пустой веб-сайт ASP.NET или откройте существующий проект ASP.NET.
Установите пакет NuGet элемента управления средства просмотра отчетов с помощью консоли диспетчера пакетов NuGet.
Добавьте в проект новую ASPX-страницу и зарегистрируйте сборку элемента управления средства просмотра отчетов для использования на странице.
Добавьте на страницу ScriptManagerControl.
Добавьте на страницу элемент управления средства просмотра отчетов. Приведенный ниже фрагмент кода можно изменить для ссылки на отчет, размещенный на удаленном сервере отчетов.
Итоговая страница должна иметь следующий вид:
Обновление имеющегося проекта для использования элемента управления средства просмотра отчетов
Обязательно обновите все ссылки на сборки до версии 15.0.0.0, в том числе файл web.config проекта и все ASPX-страницы со ссылками на элемент управления «Средство просмотра».
Пример изменений web.config
Пример ASPX
Добавление элемента управления средства просмотра отчетов в новый веб-проект Windows Forms
Создайте новое приложение Windows Forms или откройте существующий проект.
Установите пакет NuGet элемента управления средства просмотра отчетов с помощью консоли диспетчера пакетов NuGet.
Добавьте новый элемент управления из кода или добавьте элемент управления на панель элементов.
Способы настройки 100 % высоты для элемента управления средства просмотра отчетов
При задании значения 100 % для высоты элемента управления «Средство просмотра» необходимо установить для родительского элемента определенную высоту или настроить для всех предков процентное значение высоты.
Настройка значения высоты на 100 % для всех предков
Настройка атрибута высоты родительского элемента
Дополнительные сведения о размерах окна просмотра в процентах см. в разделе Viewport-percentage lengths (Размеры окна просмотра в процентах).
Добавление элемента управления на панель элементов Visual Studio
Элемент управления средства просмотра отчетов теперь поставляется в виде пакета NuGet и больше не отображается на панели элементов Visual Studio по умолчанию. Вы можете добавить этот элемент управления на панель элементов вручную.
Установите пакет NuGet для WinForms или WebForms, как было упомянуто выше.
Удалите элемент управления средства просмотра отчетов, указанный на панели элементов.
Щелкните правой кнопкой мыши где-либо на панели элементов и выберите пункт Выбрать элементы.
В установленном пакете NuGet выберите Microsoft.ReportViewer.WinForms.dll или Microsoft.ReportViewer.WebForms.dll.
Новый элемент управления должен появиться на панели элементов. При необходимости его можно переместить на другую вкладку в панели элементов.
Распространенные проблемы
Элемент управления «Средство просмотра» предназначено для современных браузеров. Этот элемент управления может работать некорректно, если браузер отрисовывает страницы в режиме совместимости с IE. При работе на сайтах интрасети может потребоваться метатег для переопределения поведения браузера по умолчанию.
Документация на сайте NuGet.org
Ниже приведены ссылки на статьи на сайте NuGet.org о версиях WebForm и WinForm элемента управления средства просмотра отчетов.
Отзыв на форуме
Если у вас возникли проблемы, сообщите об этом на форумах Reporting Services.