logo
small logo
  • Products
  • Comprar
  • Suporte
  • About
  • Customer panel Suporte
    • en
    • de
    • JP
    • ZH
  • Home
  • /
  • Articles
  • /
  • Quando é melhor usar um relatório escrito em código ou formato frx
  • Como combinar vários relatórios em um

    13 de julho de 2020

    Muitos desenvolvedores de relatórios tiveram situações em que precisaram adicionar uma página que já havia

    read more
  • Relatório interativo com entrada prévia de dados em uma tabela

    4 de abril de 2022

    Como você já sabe, os relatórios FastReport.NET podem ter formulários de diálogo que são

    read more
  • How to create a sales receipt from a WinForms application

    30 de maio de 2020

    Most likely every .NET developer started from Windows Forms applications. Countless number of such applications

    read more
  • Como usar fontes em relatórios sem instalá-las no sistema

    27 de abril de 2022

    Os relatórios eletrônicos modernos têm requisitos bastante altos, eles não devem apenas exibir as

    read more
  • Working with NuGet packages in FastReport

    22 de novembro de 2021

    UPD: Applies to the versions of FastReport .NET before 2022.2. License packages are now available

    read more

Quando é melhor usar um relatório escrito em código ou formato frx

29 de fevereiro de 2020

Como você provavelmente sabe, os relatórios no FastReport.Net podem ser criados não apenas em um designer especial, mas também à partir do código do aplicativo escrito pelo usuário. Ao mesmo tempo, em vez do arquivo usual com extensão frx, você receberá uma classe de relatório. Ele pode ser convertido em uma biblioteca e usado em diferentes projetos. Qual é essa forma de se criar relatório?

Observe esse código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
 //Cria uma instância da classe Report
 Report report = new Report();
 
 //carrega dados
 DataSet ds = new DataSet();
 ds.ReadXml(AppFolder + "\\nwind.xml");
 
//Registra o data source
 report.RegisterData(ds);
 
 //Habilita a tabela de dados
 report.GetDataSource("Products").Enabled = true;
 
 //Adiciona página ao relatório
 ReportPage page = new ReportPage();
 report.Pages.Add(page);
 page.CreateUniqueName();
 
 //Cria banda GroupHeader
 GroupHeaderBand group = new GroupHeaderBand();
 page.Bands.Add(group);
 group.CreateUniqueName();
 group.Height = Units.Centimeters * 1;
 group.Condition = "[Products.ProductName].Substring(0,1)";
 group.SortOrder = FastReport.SortOrder.Ascending;
 
// cria grupo de texto
 TextObject groupTxt = new TextObject();
 groupTxt.Parent = group;
 groupTxt.CreateUniqueName();
 groupTxt.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 1);
 groupTxt.Text = "[[Products.ProductName].Substring(0,1)]";
 groupTxt.Font = new Font("Arial", 14, FontStyle.Bold); 
 groupTxt.VertAlign = VertAlign.Center;
 groupTxt.Fill = new LinearGradientFill(Color.LightGoldenrodYellow, Color.Gold, 90, 0.5f, 1);
 
 // cria banda de dados
 DataBand data = new DataBand();
 group.Data = data;
 data.CreateUniqueName();
 data.DataSource = report.GetDataSource("Products");
 data.Height = Units.Centimeters * 0.5f;
 
 // cria texto “product name”
 TextObject productText = new TextObject();
 productText.Parent = data;
 productText.CreateUniqueName();
 productText.Bounds = new RectangleF(0, 0, Units.Centimeters * 10, Units.Centimeters * 0.5f);
 productText.Text = "[Products.ProductName]";
 
 // cria grupo para rodapé
 group.GroupFooter = new GroupFooterBand();
 group.GroupFooter.CreateUniqueName();
 group.GroupFooter.Height = Units.Centimeters * 1;
 
 if (PDFCheckBox.Checked)
 {
 report.Prepare();
 FastReport.Export.Pdf.PDFExport export = new FastReport.Export.Pdf.PDFExport();
 export.Export(report);
 }
 else
 report.Show();

Este é um exemplo de criação de um modelo de relatório com grupos. Como você pode ver, estamos criando objetos de relatório de forma consistente, começando com os objetos de texto da página do relatório. Colocamos os objetos criados e configuramos as propriedades de sua exibição. Isso requer um bom desempenho da estrutura do modelo de relatório FastReport.Net. Além disso, para conseguir a exibição desejada dos elementos, você terá bastante tempo para executar o relatório avaliar visualmente e corrigir as propriedades dos objetos, exibindo a largura ou coordenadas desejadas. Portanto, essa abordagem deve ser o de relatar listas, matrizes, tabelas - onde não há necessidade de ajustar a localização dos elementos em relação uns aos outros.

A principal vantagem de um relatório gerado no código é a capacidade de editar relatórios durante a execução, adicionando código dependendo das condições ou eventos. Isso permite criar relatórios com lógica complexa que depende diretamente do próprio aplicativo do cliente.

Não é segredo que os modelos de relatório do FastReport.Net são formatados em xml, apesar da extensão frx. Esses modelos são fáceis de transferir e visualizar em outros computadores através do programa Viewer. Mobilidade e independência da aplicação cliente - são vantagens inegáveis do padrão tradicional em formato de relatório frx, ou uma versão com dados preenchidos em formato fpx. Portanto, tendo em seu aplicativo relatórios gerados a partir do código, muitos gostariam de poder convertê-los para o formato normal do tipo xml frx. É incrivelmente simples de fazer:

1
2
Report report = new Report();
report.Save("C:\\report.frx");

Ou seja, basta utilizar a função “Salvar” do objeto de relatório. Conforme os parâmetros são passados o caminho e o nome do arquivo no qual se deseja salvar o relatório. Assim, podemos usar uma única conta que é criada a partir do código e, se necessário, convertê-la em um formato tradicional frx. O arquivo resultante pode ser transferido para outros desenvolvedores ou usuários.

Tanto os relatórios baseados em código quanto os relatórios frx têm suas vantagens. A primeira vence quando o relatório precisa ser alterado diretamente "on the go", a segunda é quando um relatório móvel é necessário ou o modelo tem muitos elementos com uma localização claramente definida em relação ao outro. Você precisa escolher uma forma de criar um relatório com base nesses benefícios.

about product comprar
avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
.NET FastReport Report

Add comment
logo
  • 800-985-8986 (English, US)
  • +4930568373928 (German)
  • +55 19 98147-8148 (Portuguese)
  • info@fast-report.com
  • 901 N Pitt Str #325 Alexandria VA 22314
  • Comprar
  • Download
  • Documentação
  • Depoimentos
  • Como desinstalar nossos produtos
  • FAQ
  • Tutorial Video
  • Forum
  • Support SLA
  • Articles
  • Our News
  • Informação sobre nós
  • Parceiros
  • Extended licensing
  • Contatos

© 1998-2023 by Fast Reports Inc.

  • Privacidade

Trustpilot