Одной из наиболее распространенных СУБД с которой работают .Net разработчики является MS SQL Server. В этой статье мы рассмотрим, как в своем .NET Core приложении использовать отчеты FastReport .NET с подключением к источнику данных MS SQL.
Для начала, необходимо создать отчет с подключением к MS SQL в дизайнере отчетов, который поставляется вместе с FastReport .NET.
Затем, в ваш .NET Core проект нужно добавить библиотеки FastReport. Это можно сделать в менеджере пакетов Nuget. Нам необходимо подключить следующие пакеты:
Затем переходим к контроллеру, в котором будем работать с отчетом. В моем примере это HomeController. Необходимо добавить ссылки на следующие пространства имен:
1 2 3 |
using FastReport.Web; using FastReport.Data; using FastReport.Utils; |
И добавляем код создания и загрузки отчета в нужный метод. В моем случае это Index:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public IActionResult Index() { RegisteredObjects.AddConnection(typeof(MsSqlDataConnection)); WebReport webReport = new WebReport(); MsSqlDataConnection sqlConnection = new MsSqlDataConnection(); sqlConnection.ConnectionString = "Data Source = localhost; AttachDbFilename =; Initial Catalog = testdb; Integrated Security = True; Persist Security Info = False; User ID =; Password = "; sqlConnection.CreateAllTables(); webReport.Report.Dictionary.Connections.Add(sqlConnection); webReport.Report.Load($@"Reports/CoreMSSQL.frx"); ViewBag.WebReport = webReport; return View(); } |
В первой строке мы инициализируем подключение к БД MsSqlDataConnection. Затем – создаем объект веб отчета. Получаем экземпляр объекта MsSqlDataConnection и задаем в нем строку подключения к БД. После чего отдаем команду – построить все таблицы. И добавляем подключение в отчет. Остается лишь загрузить шаблон отчета в объект веб отчет и передать его представлению.
Если отчет имеет переменную, то мы можем передать в нее значение из приложения таким способом:
1 2 |
String value = "Products!"; webReport.Report.SetParameterValue("Param", value); |
В представление Index.chtml (в зависимости от контроллера), мы добавляем строчку:
1 |
@await ViewBag.WebReport.Render();
|
Которая отобразит объект веб отчета.
Приложение практически готово, нужно лишь добавить еще одну строку кода в файл Startup.cs, в метод Configure:
:
1 |
app.UseFastReport();
|
Теперь можно запустить приложение и проверить работу нашего отчета:
Как видите, применение коннектора, который мы установили из Nuget, существенно облегчило нам жизнь. Мы просто инициализировали подключение к БД. Если бы мы не использовали MsSqlConnection, то пришлось бы создавать подключение, DataAdapter, DataSet и регистрировать источник данных в отчете.