logo
small logo
  • Products
  • Comprar
  • Suporte
  • Articles
  • Customer panel Suporte
    • en
    • pt
    • es
    • de
    • pl
    • JP
    • ZH
  • Home
  • /
  • Articles
  • /
  • Como criar um recibo de venda a partir de um aplicativo Delphi
  • Como imprimir cartões de visita a partir de um aplicativo Delphi

    24 de agosto de 2020

    Aplicações construídas em Delphi são menos comuns do que, por exemplo, aquelas construídas em C#.

    read more
  • Como criar uma fatura a partir de um aplicativo Delphi

    1 de julho de 2020

    Quanto às aplicações Delphi, entendemos que estamos falando de aplicações implementadas em VCL (Visual Component

    read more
  • Como proteger seu PDF?

    30 de novembro de 2020

    No dia da proteção de dados, decidimos preparar um artigo sobre a proteção de documentos

    read more
  • Como criar um único relatório entre vários em Delphi / Lazarus / C ++ Builder

    11 de dezembro de 2020

    Gostaria de destacar que FastReport VCL é um dos componentes mais convenientes para gerar relatórios

    read more
  • Como criar código de barras CODE 39 e CODE 39 Extended com Delphi / Lazarus

    23 de outubro de 2020

    CODE 39 é o código de barras desenvolvido pela Intermec Corporation em 1975. Até 43

    read more

Como criar um recibo de venda a partir de um aplicativo Delphi

20 de agosto de 2020

A linguagem de programação Delphi, ou Turbo Pascal, se tornou um ponto de partida para muitos desenvolvedores. Graças à sintaxe simples e clara e à capacidade de escrever em um estilo procedural, acabou sendo muito fácil de aprender. Muitos o comparariam com o Visual Basic, mas no auge de sua popularidade o Delphi deu muito mais oportunidades graças aos componentes para o trabalho com bancos de dados e seu próprio banco de dados - Interbase.

Apesar de C# e a plataforma .Net terem substituído Delphi e VCL, ainda existe um grande número de seus adeptos. Mesmo aplicativos antigos escritos nesta linguagem podem ser facilmente atualizados usando bibliotecas modernas, por exemplo, o gerador de relatórios FastReport 6 VCL. Por exemplo, sistemas de contabilidade automatizados precisam de relatórios.

Um sistema automatizado de contabilidade de vendas deve permitir a formação de documentos de pagamento, como um recibo de venda. Neste artigo, veremos como criar e imprimir um recibo de venda a partir de um aplicativo Delphi. Usaremos o gerador de relatórios FastReport VCL para criar o próprio recibo e um aplicativo de usuário para imprimi-lo. Além de imprimir, você pode simplesmente exibir seu recibo na janela de exibição de relatório, na qual você pode imprimir o recibo, salvá-lo em um dos formatos de documento mais comuns, enviá-lo por e-mail ou carregá-lo para armazenamento em nuvem.

Para criar um recibo de venda, precisamos das informações sobre: pedido, cliente, vendedor e conteúdo do pedido.

Neste exemplo, usaremos o banco de dados demo.mdb da distribuição FastReport VCL.

Para criar a aplicação, usaremos o ambiente de desenvolvimento Delphi 7.

Vamos adicionar dois botões ao formulário: um para executar o designer de relatório, outro para exibir ou imprimir o relatório concluído. Adicione o componente OpenDialog ao formulário também - isso nos permitirá selecionar o arquivo de relatório desejado para abrir.

Agora, vamos prosseguir para a criação de uma fonte de dados para o relatório - recibo de venda. Conforme mencionado acima, utilizamos o banco de dados demo.mdb, ou mais precisamente as tabelas: Pedidos, Clientes, Itens, Peças e Funcionário. Usaremos o componente ADOConnection para conectar ao banco de dados e os componentes ADOTable para obter dados de cada tabela. A tabela Pedidos está vinculada às tabelas Clientes, Itens e Funcionários. Portanto, precisamos configurar essas conexões. Para isso, adicione um componente DataSource para cada ADOTable e para disponibilizar todas essas tabelas no relatório, adicione o componente frxBDDataSet para cada tabela.

Assim, para trabalhar com uma tabela, devemos obter três componentes: ADOTable, DataSource, frxDBDataSet.

 Controlos de dados necessários para o relatório

Em ADOConnection, crie uma conexão com o banco de dados demo.mdb a partir da entrega do FastReport VCL.

As configurações desses componentes (para cada uma das cinco tabelas) estão abaixo.

Tabela Orders:

1. Para ADOTable, set as propriedades:

− Connection – ADOConnection1;
− Name – Orders;
− TableName – orders.

2. Para DataSource, set as propriedades:

− DataSet – Orders.

3. Para frxDBDataSet, set as propriedades:

− DataSet – Orders;

− UserName – Orders.

Tabela Customers:

1. Para ADOTable, set as propriedades:

− Connection – ADOConnection1;

− Name – Customer;

− IndexFieldnames – CustNo;

− MasterSource – DataSource1;

− MasterFields - CustNo

− TableName – customer.

2. Para DataSource, set as propriedades:

− DataSet – Customer.

3. For frxDBDataSet, set the properties:

− DataSet – Customer;

− UserName – Customer.

Tabela Items:

1. Para ADOTable, set as propriedades:

− Connection – ADOConnection1;

− Name – Items;

− IndexFieldnames – OrderNo;

− MasterSource – DataSource1;

− MasterFields - OrderNo

− TableName – items.

2. Para DataSource, set as propriedades:

− DataSet – Items.

3. Para frxDBDataSet, set as propriedades:

− DataSet – items;

− UserName – Items.

Tabela Parts:

1. Para ADOTable, set as propriedades:

− Connection – ADOConnection1;

− Name – Parts;

− TableName – parts.

2. Para DataSource, set as propriedades:

− DataSet – Parts.

3. Para frxDBDataSet, set as propriedades:

− DataSet – Parts;

− UserName – Parts.

Tabela Employee:

1. Para ADOTable, set as propriedades:

− Connection – ADOConnection1;

− Name – Employee;

− IndexFieldnames – EmpNo;

− MasterSource – DataSource1;

− MasterFields - EmpNo

− TableName – employee.

2. Para DataSource, set as propriedades:

− DataSet – Employee.

3. Para frxDBDataSet, set as propriedades:

− DataSet – Employee;

− UserName – Employee.

As tabelas Customer, Items e Employee têm uma relação com DataSource1 (a primeira tabela - Pedidos). Eles são vinculados por chave de forma que para um registro na tabela Pedidos os registros correspondentes dessas tabelas sejam selecionados.

A tabela Itens contém informações sobre os itens do pedido. Não há dados específicos sobre o item - apenas um link para a tabela de peças. Vamos adicionar dois campos da tabela Peças - Preço e Descrição - à tabela ADOT para a tabela Itens. Portanto, não precisamos usar a tabela de peças no futuro.

Para adicionar os campos computáveis à tabela de Itens, clique duas vezes no objeto ADOTable e veja uma janela com os campos da tabela. Inicialmente está vazio, mas você pode carregá-los a partir do menu de contexto selecionando Adicionar campos…:

 Quadro de itens com dois campos adicionados

Os campos Price e Description serão obtidos da tabela parts.

Select New field… no menu content e acrescente o campo Price:

 Configuração a Adicionar campo de preços

Acrescente a descrição do produto (campo Description) tda mesma forma:

 Configuração a adicionar um campo de descrição

Agora, assim que criamos a fonte de dados e configuramos os relacionamentos entre as tabelas, vamos adicionar alguns botões ao formulário. Como você deve se lembrar, o primeiro botão inicia o designer de relatório e o segundo exibe o relatório.

Não se esqueça de adicionar o componente frxReport ao formulário.

Adicione um evento de clique para cada um dos botões. Aqui está o código do manipulador de eventos para exibir o designer de relatório:

1
frxReport1.DesignReport();

Para imprimir o relatório finalizado, você pode adicionar a caixa de diálogo Abrir Arquivo ao formulário para selecionar o relatório criado no designer. O código para imprimir o relatório será assim:

1
2
3
4
5
6
7
8
OpenDialog1.Filter := 'FastReport VCL (*.fr3)|*.FR3';
 OpenDialog1.Execute();
 if Length(OpenDialog1.FileName)>0 then
 begin
 frxReport1.LoadFromFile(OpenDialog1.FileName);
 frxReport1.PrepareReport();
 frxReport1.Print();
end

Se você precisar visualizar o relatório, pode substituir a função Imprimir pela exibição do Relatório:

1
 frxReport1.ShowReport();

Agora você pode executar o aplicativo, clique no botão Projetar relatório e prossiga para a criação do relatório.

Em primeiro lugar, selecione os datasets.

 Fontes de dados necessárias no relatório

Não precisamos da tabela Partes neste relatório, portanto, não há necessidade de selecioná-la. Vamos prosseguir para a criação do modelo. Existem duas bandas de dados em nosso relatório: MasterData e DetailData. Na primeira banda de dados, geramos as informações sobre o client:

  • name - Customer.Company;
  • address - Customer.Addr1;
  • phone - Customer.Phone.

…e de customer:

  • company name;
  • employee – Employee.FirstName Employee.Last Name;
  • order number – Orders.OrderNo;
  • sale date – Orders.SaleDate.

Esta banda está vinculada à tabela Pedidos. As informações de conteúdo do pedido serão exibidas em uma faixa de dados subordinada: nome do produto, quantidade, preço do item, preço para a quantidade especificada.

Totais - como o valor líquido total, taxa de imposto, valor final incluindo imposto - serão exibidos no rodapé.

Modelo de recibo de vendas

Os subtotais do total da linha são calculados multiplicando a quantidade e o preço do item como parte de uma única entrada da tabela:

[<Items."Qty">*<Items."Price">]

Os subtotais líquidos são calculados pela fórmula:

∑(item quantity * item price)

[SUM(<Items."Qty">*<Items."Price">)]

Valor total do imposto:

∑(item quantity* item price * tax rate)

[SUM(<Items."Qty">*<Items."Price">)*0.05]

Total devido:

∑(item quantity * item price)+ ∑( item quantity * item price * tax rate)

[SUM(<Items."Qty">*<Items."Price">) + SUM(<Items."Qty">*<Items."Price">)*0.05]

Além disso, o método de pagamento é refletido no rodapé da base de dados. Espera-se que seja especificado ao imprimir um recibo de venda manualmente.

Aqui podemos dizer que nosso relatório está pronto para exibição. Salve-o no armazenamento local e feche o designer de relatórios. Usando o segundo botão no formulário, selecione o relatório salvo e imprima (se você usou a opção de impressão no código) ou visualize-o se você escolheu a opção de visualização do relatório - ShowReport().

O relatório com recibo de vendas

É isso. Com pouco esforço, você pode implementar funcionalidades úteis para seu sistema de contabilidade. Agora, na janela de visualização do relatório, você pode imprimi-lo ou salvá-lo em um dos formatos de documento populares: PDF, DOCS, XLSX, XML, RTF e muitos outros.

avatar
Dmitriy Fedyashov
Technical Writer
Fast Reports Team: Dmitriy Fedyashov - Technical Writer at Fast Reports
VCL FastReport FastReport 6 Delphi Sales receipt

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
  • Ticket system
  • FAQ
  • Tutorial Video
  • Forum
  • Articles
  • Our News
  • Informação sobre nós
  • Parceiros
  • Extended licensing
  • Contatos

© 1998-2022 by Fast Reports Inc.

  • Privacidade