Начало работы с элементами управления средства просмотра отчетов
Элементы управления "Средство просмотра отчетов" можно использовать для интеграции отчетов языка определения отчетов Служб Reporting Services в приложения WebForms и WinForms. Подробные сведения о последних обновлениях см . в заметках о выпуске элементов управления средства просмотра отчетов для webForms и WinForms SSRS.
Добавление элемента управления средства просмотра отчетов в новый веб-проект
Создайте новый пустой веб-сайт ASP.NET или откройте существующий проект ASP.NET.
Вы можете использовать .NET Framework 4.6 или любую более новую версию.
Установите пакет NuGet элемента управления средства просмотра отчетов с помощью консоли диспетчера пакетов NuGet.
Install-Package Microsoft.ReportingServices.ReportViewerControl.WebForms
Добавьте в проект новую ASPX-страницу и зарегистрируйте сборку элемента управления средства просмотра отчетов для использования на странице.
<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
Добавьте на страницу ScriptManagerControl.
Добавьте на страницу элемент управления средства просмотра отчетов. Следующий фрагмент кода можно обновить, чтобы ссылаться на отчет, размещенный на удаленном сервере отчетов.
<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="http://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>
</html>
Обновление имеющегося проекта для использования элемента управления средства просмотра отчетов
Обязательно обновите все ссылки на сборки до версии 15.0.0.0, в том числе файл web.config проекта и все ASPX-страницы со ссылками на элемент управления "Средство просмотра".
Пример изменений web.config
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
https://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.6">
<assemblies>
<!-- All assemblies updated to version 15.0.0.0. -->
<add assembly="Microsoft.ReportViewer.Common, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
<add assembly="Microsoft.ReportViewer.DataVisualization, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
<add assembly="Microsoft.ReportViewer.Design, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
<add assembly="Microsoft.ReportViewer.ProcessingObjectModel, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
<add assembly="Microsoft.ReportViewer.WebDesign, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
<add assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
<add assembly="Microsoft.ReportViewer.WinForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
</assemblies>
<buildProviders>
<!-- Version updated to 15.0.0.0. -->
<add extension=".rdlc"
type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
</buildProviders>
</compilation>
<httpRuntime targetFramework="4.6"/>
<httpHandlers>
<!-- Version updated to 15.0.0.0 -->
<add path="Reserved.ReportViewerWebControl.axd" verb="*"
type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"
validate="false"/>
</httpHandlers>
</system.web>
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true"/>
<handlers>
<!-- Version updated to 15.0.0.0 -->
<add name="ReportViewerWebControlHandler" verb="*" path="Reserved.ReportViewerWebControl.axd" preCondition="integratedMode"
type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91"/>
</handlers>
</system.webServer>
</configuration>
Пример ASPX
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="SampleAspx" %>
<!-- Update version to 15.0.0.0 -->
<%@ Register assembly="Microsoft.ReportViewer.WebForms, Version=15.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" namespace="Microsoft.Reporting.WebForms" tagprefix="rsweb" %>
<!DOCTYPE html>
Добавление элемента управления средства просмотра отчетов в новый веб-проект Windows Forms
Создайте новое приложение Windows Forms или откройте существующий проект.
Вы можете использовать .NET Framework 4.6 или любую более новую версию.
Установите пакет NuGet элемента управления средства просмотра отчетов с помощью консоли диспетчера пакетов NuGet.
Install-Package Microsoft.ReportingServices.ReportViewerControl.WinForms
Добавьте новый элемент управления из кода или добавьте его на панель инструментов.
private Microsoft.Reporting.WinForms.ReportViewer reportViewer1; private void InitializeComponent() { this.reportViewer1 = new Microsoft.Reporting.WinForms.ReportViewer(); this.SuspendLayout(); // // reportViewer1 // this.reportViewer1.Location = new System.Drawing.Point(168, 132); this.reportViewer1.Name = "reportViewer1"; this.reportViewer1.ServerReport.BearerToken = null; this.reportViewer1.Size = new System.Drawing.Size(396, 246); this.reportViewer1.TabIndex = 0; // // Form1 // this.Controls.Add(this.reportViewer1); }
Способы настройки 100 % высоты для элемента управления средства просмотра отчетов
При установке высоты элемента просмотра на 100 %, родительский элемент должен иметь определенную высоту, или все предки должны иметь процентные высоты.
Настройка значения высоты на 100 % для всех предков
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<style>
html,body,form,#div1 {
height: 100%;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div id="div1" >
<asp:ScriptManager runat="server"></asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote" Height="100%" Width="100%">
<ServerReport ReportServerUrl="https://test/ReportServer" ReportPath="/testreport" />
</rsweb:ReportViewer>
</div>
</form>
</body>
</html>
Настройка атрибута высоты родительского элемента
Дополнительные сведения о размерах окна просмотра в процентах см. в разделе Viewport-percentage lengths (Размеры окна просмотра в процентах).
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
</head>
<body>
<form id="form1" runat="server">
<div style="height:100vh;">
<asp:ScriptManager runat="server"></asp:ScriptManager>
<rsweb:ReportViewer ID="ReportViewer1" runat="server" ProcessingMode="Remote" Height="100%" Width="100%">
<ServerReport ReportServerUrl="https://test/ReportServer" ReportPath="/testreport" />
</rsweb:ReportViewer>
</div>
</form>
</body>
</html>
Добавление элемента управления на панель элементов Visual Studio
Элемент управления средства просмотра отчетов теперь поставляется в виде пакета NuGet и больше не отображается на панели элементов Visual Studio по умолчанию. Вы можете добавить этот элемент управления на панель элементов вручную.
Установите пакет NuGet для WinForms или WebForms, как упоминалось ранее.
Удалите элемент управления средства просмотра отчетов, указанный на панели элементов.
Щелкните правой кнопкой мыши в любом месте панели элементов и выберите пункт " Выбрать элементы...".
В окне Компоненты .NET Framework щелкните Обзор.
В установленном пакете NuGet выберите Microsoft.ReportViewer.WinForms.dll или Microsoft.ReportViewer.WebForms.dll.
Примечание.
Пакет NuGet будет установлен в каталоге решения. Путь к DLL будет иметь следующий вид:
{Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.Winforms.{version}\lib\net40
или{Solution Directory}\packages\Microsoft.ReportingServices.ReportViewerControl.WebForms.{version}\lib\net40
.Новый элемент управления должен появиться на панели элементов. Если вы хотите, его можно переместить на другую вкладку на панели элементов.
Распространенные проблемы
Элемент управления "Средство просмотра" предназначено для современных браузеров. Элемент управления может не работать должным образом, если браузер отрисовывает страницу с помощью режима совместимости IE. На сайтах интрасети может потребоваться метатег для переопределения поведения браузера по умолчанию.
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
Документация на сайте NuGet.org
Ниже приведены ссылки на статьи на сайте NuGet.org о версиях WebForm и WinForm элемента управления средства просмотра отчетов.
- Microsoft.ReportingServices.ReportViewerControl.WebForms https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.WebForms/
- Microsoft.ReportingServices.ReportViewerControl.Winforms https://www.nuget.org/packages/Microsoft.ReportingServices.ReportViewerControl.WinForms/
Отзыв на форуме
Если у вас возникли проблемы, сообщите об этом на форумах Reporting Services.