Geração de relatórios com PostgreSQL em um aplicativo .NET 5 com Debian 10

2022-05-25

Muitos precisam de uma solução que irá gerar relatórios em sistemas Linux e também irá suportar o trabalho com bancos de dados SQL semelhantes e não só. E nós temos essa solução na forma de FastReport.Core. Esta biblioteca permite a criação de relatórios em diferentes distribuições Linux e tem a capacidade de se conectar a diferentes bancos de dados. Neste artigo, veremos como implementar isso em uma distribuição Debian 10 usando PostgreSQL.

Para começar, instalamos o PostgreSQL no Debian 10. A instalação detalhada é descrita por seguinte link. Vamos verificar o desempenho do Postgres indo para o terminal. Passamos para a conta do postgres com o seguinte comando:

$ sudo -i -u postgres

Depois disso, para obter acesso ao shell do postgres, escrevemos o seguinte:

$ psql

Agora temos acesso à linha de comando do postgres e, além disso, verificamos que ela está funcionando.

Adicione uma senha para o usuário postgres em vez de 'password123':

ALTER USER postgres WITH PASSWORD ‘password123’

Criamos uma tabela de teste:

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

E preenchemos com dados:

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

Agora tudo é feito, agora verificamos a tabela quanto a dados com o seguinte comando. O resultado é refletido na figura abaixo.

SELECT * FROM test;

Saída do comando SELECT * FROM test;

Para criar um aplicativo no .NET 5.0, precisamos instalar o próprio DotNet. Vamos para página de instalação detalhada e estudamos cuidadosamente todos os pontos necessários. Para uma operação mais conveniente, você pode baixar o VS code por este link. Em seguida, baixe o pacote deb e instale-o no seu computador. 

No próprio VS code, baixamos plugins da # E NuGet Gallery. Este último é necessário para uma pesquisa conveniente e instalação adequada de pacotes nuget.

Criamos um projeto no VS code, para fazer isso, clique em ctrl + J para abrir o console dentro do VS code. Depois de inserir este comando:

dotnet new console

O próximo passo depois de criar o projeto, precisamos baixar e instalar as bibliotecas necessárias. Após a conclusão das ações anteriores, abrimos a Galeria Nuget no projeto de teste.

Abrindo A Galeria Nuget

Procure FastReport.Core e instale-o. Certifique-se de verificar a caixa de seleção ao lado do Prerelease, pois este pacote é uma versão demo, caso contrário, o pacote não será exibido.

Pesquisa FastReport.Core em Nuget

O conector não é uma versão de demonstração, portanto, não é necessário marcar a caixa ao lado do Prerelease. Basta encontrar na barra de pesquisa FastReport.Data.Postgres e instalá-lo exatamente como o pacote anterior.

Pesquisa FastReport.Data.Postgres para Nuget

Depois de instalar todos os componentes necessários, abrimos Program.cs em nosso projeto e insirimos o seguinte código no método main:

using System;
using FastReport;
using FastReport.Data;
using FastReport.Utils;
using FastReport.Export.Pdf;
 
static void Main(string[] args)
{
//Como criar uma conexão PostgreSQL
 
RegisteredObjects.AddConnection(typeof(PostgresDataConnection));
PostgresDataConnection connection = new PostgresDataConnection();
connection.ConnectionString = "Host=localhost;Username=postgres;Password=1234;Database=postgres";
connection.CreateAllTables();
 
//Como criar um relatório e conectar o banco de dados e a tabela ao relatório
 
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();
 
//Atribuir DataBend para a nossa tabela
 
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;
 
//Atribuimos valores a um objeto de texto do campo 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");
 
}

Compilamos e executamos nosso projeto. Este criará um arquivo de relatório PDF assim:

A exportação PDF de um relatório de teste

A conclusão será muito simples. Não é difícil conectar o banco de dados ao seu próprio aplicativo, pois hoje criamos um relatório usando dados do banco de dados PostgreSQL na distribuição Debian 10.

.NET Visual Studio FastReport Linux Core SQL .NET5 NuGet .NET Visual Studio FastReport Linux Core SQL .NET5 NuGet
12 de julho de 2022

Como mostrar múltiplos relatórios em uma página no Blazor

Trabalho a partir do Código do aplicativo Blazor para exibir simultaneamente vários relatórios com filtragem de dados de acordo com a condição do Usuário.
06 de julho de 2022

Como importar um relatório do StimulSoft para o FastReport.NET

O FastReport. net adicionou um plug-in de importação de relatórios do StimulSoft que converte automaticamente seus documentos em um formato .frx.
15 de fevereiro de 2022

Fast Reports Private NuGet-server

We are talking about our own NuGet package repository-a Fast Reports server with connection through various sources.
Fast Reports
  • 800-985-8986 (English, US)
  • +31 97 01025-8466 (English, EU)
  • +49 30 56837-3928 (German, DE)
  • +55 19 98147-8148 (Portuguese, BR)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2025 Fast Reports Inc.