Это не простая задача! Вот шесть шагов для вас.
1. Web.config
Для начала откройте ваш web.config и добавьте следующее в ваш <system.web>
раздел
<httpHandlers>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
validate="false" />
</httpHandlers>
и затем в вашем теге <compilation>
добавьте следующее:
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</buildProviders>
и затем внутри вашего тега <system.webServer>
добавьте это:
<handlers>
<add name="ReportViewerWebControlHandler" preCondition="integratedMode" verb="*" path="Reserved.ReportViewerWebControl.axd" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
</handlers>
, а также добавить ссылку на Microsoft.ReportViewer.Common.dll и Microsoft.ReportViewer.WebForms.dll (версия 10.0.0.0).
2. Global.asax
Откройте ваш Global.asax.cs и в функцию RegisterRoutes () добавьте следующее:
//Reports Viewers depend on Viewstate so are hosted in class ASPX web forms, so bypassing MVC3 routing
routes.IgnoreRoute("ReportViewer/");
Пока вы делаете это, создайте новую папку с именем «ReportViewer» в приложении asp.net.
3. Набор данных XSD
Создайте новый XSD-файл в корне папки вашего проекта (да, это должен быть корень!).
Щелкните правой кнопкой мыши по вашему проекту, нажмите «Добавить новый набор данных». Он должен быть пустым.
Щелкните правой кнопкой мыши по нему и перейдите в Add, TableAdapter ...
Выберите строку подключения к вашей базе данных. Сохраните его в конфиге приложения. Использовать существующий сохраненный процесс. Заполните набор данных с помощью запроса SELECT. Дайте набору данных значимое имя.
4. Создайте свой отчет RDLC
Создайте новый файл отчета RDLC (для этого вам понадобятся инструменты BI) и перейдите к «Добавить набор данных». Выберите новый набор данных. Создайте отчет. Запишите имя набора данных. (Например, «DataSet1», не забудьте изменить его позже на что-то более полезное.)
5. Настройте страницу ASPX
Создать новую веб-форму ASP.NET, да, веб-форму Страница с названием ShowReport.aspx. HTML должен иметь следующее:
<body>
<form id="form1" runat="server" >
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<rsweb:ReportViewer
ID="ReportViewer1"
SizeToReportContent="False"
Width="820px"
Height="820px"
runat="server"
ShowRefreshButton="false"
AsyncRendering="false"
DocumentMapCollapsed="True"
PageCountMode="Actual"
PromptAreaCollapsed="True"></rsweb:ReportViewer>
</form>
</body>
6. Codebehind
В коде для ваших reports.aspx.cs сделайте это:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
DataSet dataset = GetPopulatedDatasetFromDB() // Populate your dataset here by calling the stored proc.
ReportViewer1.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Local;
ReportViewer1.LocalReport.ReportPath = Server.MapPath("/Reports/MyNewReport.rdlc");
ReportViewer1.LocalReport.DataSources.Clear();
ReportViewer1.LocalReport.DataSources.Add(
new Microsoft.Reporting.WebForms.ReportDataSource("DataSet1", dataset.Tables[0]));
ReportViewer1.LocalReport.Refresh();
}
}
Посетите вашу страницу:
http://localhost/MyApp/ReportViewer/ShowReport.aspx
Voila!