Создание отчетов с PostgreSQL в приложении .NET 5 под Debian 10

25.05.2022

Создание отчетов с PostgreSQL в приложении .NET 5 под Debian 10

Многие нуждаются в решении, которое будет генерировать отчеты под Linux системами, а также будет поддерживать работу с SQL подобными базами данных и не только. И у нас есть такое решение в виде FastReport.Core. Данная библиотека позволяет создавать отчеты под разными дистрибутивами Linux и имеет возможность подключаться к различным базам данных. В этой статье мы рассмотрим как это реализовать на дистрибутиве Debian 10 c использованием PostgreSQL.

Для начала устанавливаем PostgreSQL на Debian 10. Подробная установка описана по следующей ссылке. Проверим работоспособность Postgres перейдя в терминал. Переключаемся на учетную запись postgres с помощью следующей команды:

$ sudo -i -u postgres

После этого для получения доступа к оболочке postgres пишем следующее:

$ psql

Теперь у нас есть доступ к командной строке postgres, и дополнительно мы убедились в её работоспособности.

Добавляем пароль для юзера postgres вместо ‘password123’:

ALTER USER postgres WITH PASSWORD ‘password123’

Создаём тестовую таблицу:

CREATE TABLE test (city varchar(80), temp_lo int, temp_hi int);

И заполняем её данными:

INSERT INTO test VALUES ('Chicago',30,40);

Готово, теперь проверим таблицу на наличие данных с помощью следующей команды. Результат отражен на рисунке ниже.

SELECT * FROM test;

Вывод команды SELECT * FROM test;

Для создания приложения на .NET 5.0 нам понадобиться установить сам DotNet. Переходим на страницу с подробной установкой и внимательно изучаем все необходимые моменты. Для более удобной работы можно загрузить VS code по этой ссылке. Затем скачиваем deb пакет и устанавливаем его на свой компьютер.

В самом VS code скачиваем плагины С# и Nuget Gallery. Последний нужен для удобного поиска и правильной установки nuget пакетов.

Создаем проект в VS code, для этого нажимаем CTRL + J чтобы открылась консоль внутри VS code. После вводим эту команду:

dotnet new console

Следующим шагом после создание проекта, нам нужно скачать и установить нужные библиотеки. По завершению прошлых действий открываем Nuget Gallery в тестовом проекте.

Открытие Nuget Gallery

Ищем FastReport.Core и устанавливаем его. Обязательно проверьте галочку напротив Prerelease, так как данный пакет является демонстрационной версией, иначе пакет не будет отображаться.

Поиск FastReport.Core в Nuget

Коннектор не является демонстрационной версией, так что не обязательно ставить галочку напротив Prerelease. Достаточно найти в строке поиска FastReport.Data.Postgres и установить его точно так же, как и прошлый пакет.

Поиск FastReport.Data.Postgres в Nuget

После установки всех необходимых компонентов открываем Program.cs в нашем проекте и вставляем следующий код в метод main:

using System;
using FastReport;
using FastReport.Data;
using FastReport.Utils;
using FastReport.Export.Pdf;
 
static void Main(string[] args)
{
//Создание подключения к PostgreSQL
 
RegisteredObjects.AddConnection(typeof(PostgresDataConnection));
PostgresDataConnection connection = new PostgresDataConnection();
connection.ConnectionString = "Host=localhost;Username=postgres;Password=1234;Database=postgres";
connection.CreateAllTables();
 
//Создание отчета и подключение базы и таблицы к отчету
 
Report report = new Report();
report.Dictionary.Connections.Add(connection);
connection.Enabled = true;
 
foreach(TableDataSource table in connection.Tables)
{
if(table.Name == "public_test")
{
table.Enabled = true;
}
}
 
ReportPage page = new ReportPage();
report.Pages.Add(page);
page.CreateUniqueName();
 
DataBand dataBand = new DataBand();
page.Bands.Add(dataBand);
dataBand.CreateUniqueName();
 
//Присваиваем DataBend нашу таблицу
 
dataBand.DataSource = report.GetDataSource("public_test");
dataBand.Height = Units.Centimeters * 0.5f;
 
TextObject City = new TextObject();
City.CreateUniqueName();
City.Bounds = new System.Drawing.RectangleF(0,0,100,100);
City.Parent = dataBand;
 
//Присваиваем значения текстовому объекту из поля DB
 
City.Text = "[public_test.city]";
 
TextObject temp_lo = new TextObject();
temp_lo.CreateUniqueName();
temp_lo.Bounds = new System.Drawing.RectangleF(150,0,100,100);
temp_lo.Parent = dataBand;
temp_lo.Text = "[public_test.temp_lo]";
 
TextObject temp_hi = new TextObject();
temp_hi.CreateUniqueName();
temp_hi.Bounds = new System.Drawing.RectangleF(300,0,100,100);
temp_hi.Parent = dataBand;
temp_hi.Text = "[public_test.temp_hi]";
 
report.Prepare();
 
PDFExport pDF = new PDFExport();
pDF.Export(report,"test.pdf");
 
}

Компилируем и запускаем наш проект. Он создаст вот такой PDF файл отчета:

PDF экспорт тестового отчета

Вывод будет очень простым. Подключать базу данных к собственному приложению совершенно не сложно, как раз сегодня мы создали отчет с использованием данных из базы PostgreSQL в дистрибутиве Debian 10.

.NET Visual Studio FastReport Linux Core SQL .NET5 NuGet .NET Visual Studio FastReport Linux Core SQL .NET5 NuGet
10 февраля 2025

Как попробовать FastReport .NET WEB перед покупкой

Протестировав WEB пак перед покупкой, вы сможете сделать осознанный выбор: подходит ли вам FastReport .NET для ваших задач.
12 августа 2024

Как собрать и установить плагин Postgres в FastReport .NET

В этой статье описывается подключение к базе посредством плагина FastReport .NET для дизайнера отчетов из Visual Studio через NuGet-сервер.
8 августа 2024

Как установить FastReport .NET и его компоненты в Windows

Пошаговая инструкция по онлайн и ручной установке через регистрационный код FastReport .NET и его компонентов в Windows.