майкрософт репорт вивер что это
В качестве практической части будет рассмотрено создание приложения, отображающего отчеты для торговой системы Супермаг (которая, собственно, и использует базу 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 будет:
Опять же, для вызова метода асинхронно нам понадобился делегат, который на этот раз не принимает никаких параметров. Добавим его в начало нашего кода:
Должно получиться примерно такое вот приложение:
Использование контрола ReportViewer в Windows приложниях
Параграф 1. Вместо предисловия
По существу, ReportViewer является наиболее мощным добавлением к таким элементам управления как, GridView, DataList, DetailsView, FormView, Repeater. В ReportViewer отчёты можно создавать с помощью технологии «drag-and-drop» внутри Дизайнера Отчётов (Report Designer), входящего в среду разработки Visual Studio 2005.
Параграф 2. Источник данных
Создание таблицы БД:
Рис.2. Создание таблицы БД
Задание полей таблицы:
Рис.3. Задание полей таблицы
После задания полей таблицы и попытки закрыть окно Table, среда запросит имя файла базы данных. Запишем любое имя, например ThisAnimals.
Рис.4. Открытие созданной таблицы базы данных
Рис.5. Заполнение таблицы информацией
Параграф 3. Создание проекта решения
Создадим простой Windows проект решения, как мы это делали неоднократно (Меню File/New/Project). Дадим имя проекту RepView, как показано на Рис.6:
Рис.6. Создание проекта решения
Поместим на форму два контрола Button и ReportViewer, как показано на Рис.7:
Рис.7. Добавление рабочих контролов
Проект создан, но прежде чем заполнять его кодом, отвлечемся на источник информации.
Параграф 4. Источник данных для отображения
Нажимаем в правом верхнем углу контрола треугольничек и выбираем пункт Design a new Report (Рис.7.). В появившемся окне редактора ReportViewer, нажимаем кнопку «Add New Source..»(Рис.8.)
Рис.8. Добавление источника данных
Прежде чем выбрать DateBase и нажать кнопку Next (Рис.9.), мы можем скопировать файл созданной выше базы данных (файл Animals.mdb) в директорию проекта решения (хотя это и не является обязательным, среда предложит Вам позже выполнить это еще раз, но и там у Вас останется право выбора).
Рис.9. Добавление источника данных
Нажимаем кнопку New и далее выбираем DataSource и DataFileName, как показано на Рис.10.
Рис.10. Добавление DataSource и DataFileName
В результате выбора получим результат:
Рис.11. Результат выбора источника данных
После нажатия кнопки Next не соглашаемся включить файл базы данных в текущий проект (зависит от цели задачи).
Результат мы видим на Рис.12:
Рис.12. Результат выбора источника данных
Нажимаем кнопку Finish. Результат выбора источника данных будет иметь вид Рис.13:
Рис.13. Результат выбора источника данных
Параграф 5. Отображение данных
Кликнем мышкой в поле дизайнера Report1.rdlc и в меню View выберем ToolBox. В результате в проекте отобразится ToolBox, с контролами, которые доступны для использования в ReportViewer (Рис.14.). Здесь мы видим все доступные для отображения в ReportViever контролы. Вначале будем использовать таблицу. Перетащим таблицу на панель дизайнера:
Рис.14. Добавление таблицы в дизайнер ReportViever
Вновь вернемся на вкладку DtatSource и перетащим поля источника во вторую строку таблицы, как показано на Рис.15.
Рис.15. Добавление полей отображения в ReportViever
Мы можем перетащить поля и в третью строку. При этом, по умолчанию, ячейка таблицы будет восприниматься как сумма содержимого ячеек данного столбца:
Достаточно кликнуть правой кнопкой мышки по данной ячейке и выбрать пункт «fx Expression. » мы отобразим окно «Edit Expression», где можно подобрать любую другую функцию из множества доступных. Для нашего примера в первой ячейке третьей строки запишем просто слово «Итого».
Если мы выполним решение на данном этапе, то получим сообщение:
Иначе, мы определили структуру отображения, но пока не дали сами данные для отображения. Однако, учитывая, что Visual Studiо сохраняет все при выполнении решения, мы, тем самым сохранили и файл Report1.rdlc, который на данный момент содержит структуру отображения данных и структуру ее источников в виде нашего AnimalsDataSet.
Рис.16. Использование ReportViever для отображения табличных данных
Теперь добавим контрол Chart со вкладки Tools ReportViewer. И, как показано на Рис.17. перетащим поля в своеобразные ушки контрола, которые появляются при двойном клике мышкой в поле контрола.
Рис.17. Использование ReportViever для отображения табличных данных
Рис.18. Выбор диаграммы
После нажатия кнопки OK, выполним решение. Результат показан на Рис.19:
Рис.19. Выбор диаграммы
Параграф 6. Упрощенный способ отображения данных
Владимир Розанов (инженер-программист, Полесский государственный университет) прислал письмо:
Спасибо Владимиру, именно благодаря ему, мне пришлось продолжить статью. Я вполне согласен с Владимиром, достаточно установить свойства, как показано на Рис.20., и написать код, приведенный ниже, и при загрузке решения на выполнение мы получим тот же результат, что и на Рис.19. Этого во многих случаях, вполне достаточно для выполнения цели создания приложения.
Рис.20. Упрощенный способ отображения данных
Однако, мы, при этом, теряем гибкость отображения. Для каждого использования ReportViewer потребуется создать свой файл ReportEmbeddedResource (RepView.Report1.rdlc, RepView.Report2.rdlc. ). Приведенный же метод позволяет использовать многократно один и тот же файл ReportEmbeddedResource. Простейший пример приводится ниже.
Параграф 7. Использование одного ReportEmbeddedResource для вывода различных отчетов
Создадим еще одну таблицу в нашей базе данных (связанную по id с ранее созданной), как показано на Рис.21.
Рис.21. Создание дополнительной таблицы
Добавим еще одну кнопку и контрол Label на форму, и будем использовать следующий код (приводится полностью):
Цветом выделено предложение Select. Второе из них приводит названия выбираемых полей из двух таблиц к их названиям в созданном нами «AnimalsDataSet.ThisAnimals». Это приведение и позволяет использовать файл «ReportEmbeddedResource» уже созданный нами для отображения новых данных.
Результат выполнения приложения при поочередном нажатии кнопок 1 и 2 показан на Рис.22:
Рис.22. Использование одного ReportEmbeddedResource для вывода различных отчетов
Скачать код примеров
Распаковав скачанный файл вы найдете одну директорию, с решением, содержащим код последнего примера и файл Animals.mdb. Директорию с решением можно поместить в любое место любого жесткого диска, для последующего его открытия в Visual Studio 2005 и выше. Файл базы данных Animals.mdb должен быть помещен в директорию C:\Bases\, которую Вам придется создать. После этого Вы можете продолжить эксперименты с кодом.
Молчанов Владислав 25.11.2008г.
Интеграция служб 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.
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

а после для принятия изменение нужно перезагрузить сервер с ролью 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.
































