1º Passo: modelo do recibo no Word
Criar um novo documento no Microsof Word e desenvolver o modelo do recibo de pagamento acrescentando campos de texto que serão substituídos por valores definidos na aplicação Delphi. O "Campo de Texto", indicado pela seta azul na Figura 1, encontra-se na barra de ferramentas formulários disponível na "Guia Desenvolvedor" na versão 2010 do Microsoft Word. Para mostrar a "Guia Desenvolvedor" na barra de menu do Word deve-se:
a) No menu Arquivo, clicar em Opções.
b) Na janela "Opções do Word", clicar em Personalizar Faixa de Opções e a seguir marcar a caixa Desenvolvedor em "Guias Principais".
Dois aspectos importantes devem ser observados na construção do modelo do recibo no Word:
1) Os campos de texto devem ser identificados na caixa "Indicador" da janela "Opções de formulário de texto" aberta através de um duplo clique do mouse sobre o respectivo campo. Na Figura 1 pode-se observar os nomes sugeridos para os campos de texto, na ordem: Pagador, Extenso, Referente, Valor, Tipo, Local e Assina. Estes nomes serão usados pelo Delphi para atribuir os valores dos componentes de entrada da interface da aplicação aos respectivos campos no documento Word.
2) Concluído o modelo do recibo ele deverá ser salvo na pasta da aplicação com o nome "RECIBO" do tipo "Modelo do Word" (RECIBO.dot).
![]() |
Figura 1. Modelo do recido desenvolvido no Word. |
2º Passo: desenvolvendo a aplicação Delphi
Criar uma nova aplicação no ambiente de desenvolvimento Delphi 7 através da opção do menu "File|New|Application..." e implementar o formulário principal como sugere a Figura 2.
![]() |
Figura 2. Formulário principal da aplicação. |
Relação dos componentes do formulário principal com a ordem sequencial, o nome do componente, a página da sua localização e as propriedades que devem ser alteradas com os seus respectivos valores. | |||||
1. Label pág. Standard | 2. Edit pág. Standard | 3. Label pág. Standard | |||
Caption | Valor: | Name | edValor | Caption | Pagador: |
Left | 10 | Left | 10 | Left | 10 |
Top | 5 | Top | 19 | Top | 50 |
Font | negrito, azul | ||||
Text | apagar | ||||
Width | 100 | ||||
4. Edit pág. Standard | 5. Label pág. Standard | 6. Edit pág. Standard | |||
Name | edPagador | Caption | Referente a: | Name | edReferente |
Left | 10 | Left | 10 | Left | 10 |
Top | 64 | Top | 95 | Top | 109 |
Text | apagar | Text | apagar | ||
Width | 430 | Width | 430 | ||
7. RadioGroup pág. Standard | 8. GroupBox pág. Standard | 9. Label pág. Standard | |||
Name | rgTipo | Caption | Cheque: | Caption | Banco: |
Caption | Pagamento: | Left | 150 | Left | 10 |
Left | 10 | Top | 140 | Top | 24 |
Top | 140 | Height | 70 | ||
Items | Dinheiro Cheque | Width | 288 | ||
ItemIndex | 0 | ||||
Columns | 1 | ||||
Height | 70 | ||||
Width | 125 | ||||
10. Edit pág. Standard | 11. Label pág. Standard | 12. Edit pág. Standard | |||
Name | edBanco | Caption | Agência: | Name | edAgencia |
Left | 10 | Left | 105 | Left | 105 |
Top | 38 | Top | 24 | Top | 38 |
Text | apagar | Text | apagar | ||
Width | 75 | Width | 75 | ||
13. Label pág. Standard | 14. Edit pág. Standard | 15. Label pág. Standard | |||
Caption | Conta: | Name | edConta | Caption | Local: |
Left | 200 | Left | 200 | Left | 10 |
Top | 24 | Top | 38 | Top | 220 |
Text | apagar | ||||
Width | 75 | ||||
16. Edit pág. Standard | 17. Label pág. Standard | 18. Edit pág. Standard | |||
Name | edLocal | Caption | Assina: | Name | edAssina |
Left | 10 | Left | 10 | Left | 10 |
Top | 234 | Top | 265 | Top | 279 |
Text | apagar | Text | apagar | ||
Width | 430 | Width | 430 | ||
19. Button pág. Standard | 20. BitBtn pág. Additional | ||||
Name | Button1 | Kind | bkClose | ||
Caption | &Imprimir | Caption | &Fechar | ||
Left | 125 | Left | 365 | ||
Top | 17 | Top | 17 |
3º Passo: adicionando a unit "Um" ao projeto
O valor do recibo também será apresentado por extenso no documento. No artigo Valor Por Extenso: Delphi foi desenvolvida a unit "Um" com a função "valorPorExtenso" que recebe um valor do tipo real e retorna o extenso deste valor. Para utilizar a unit citada neste projeto deve-se:
a) Fazer o download em http://www.pb.utfpr.edu.br/omero/Delphi/Artigos/Um.rar e extrair a unit na pasta do projeto.
b) Adicionar a unit ao projeto através da opção do menu "Project|Add to project..."
4º Passo: implementação
a) Fazer referência as unit's "ComObj" e "Um" no início da implementation do formulário da aplicação como mostra a Listagem 1. A unit "ComObj" disponibiliza a função CreateOleObject utilizada para criar uma instância do aplicativo Microsoft Word. Já a unit "Um" oferece a função valorPorExtenso para retornar um valor monetário por extenso.
Listagem 1. Fazendo referência as units "ComObj" e "Um". |
|
b) No evento "onClick" do botão "Imprimir" o aplicativo Microsoft Word é aberto com um novo documento, criado a partir do modelo do recibo, e os componentes de entrada são atribuidos aos respectivos campos de formulário como mostra a Listagem 2.
Listagem 2. Evento "onClick" do botão "Imprimir". |
|
Aspectos importantes da codificação apresentada na Listagem 2:
1) A variável "WApp" recebe uma instância do aplicativo Microsoft Word através da instrução: WApp := CreateOleObject('Word.Application');
2) A variável "WDoc" recebe o documento criado no Word a partir do modelo salvo na pasta da aplicação através da instrução: WDoc := WApp.Documents.Open(path + 'RECIBO.dot');
3) Os valores dos componentes de entrada na interface são atribuídos aos respectivos campos de texto no documento Word através de instruções, como por exemplo:
WDoc.FormFields.Item('Valor').Result := Format('%m', [vlr]);
WDoc.FormFields.Item('Pagador').Result := edPagador.Text;
WDoc.FormFields.Item('Extenso').Result := valorPorExtenso(vlr);
Executando a aplicação deve-se informar todos as informações relacionadas ao recibo: valor (R$), nome do pagador, finalidade do recibo, tipo do pagamento (em dinheiro ou cheque), local do pagamento e o nome de quem assina, como mostra o exemplo apresentado na Figura 2.
![]() | |
Figura 2. Ilustrando a execução da aplicação. |
Pressionando o botão "Imprimir" os dados de entrada serão atribuídos aos respectivos campos texto no recibo criado no Word como mostra a Figura 3.
![]() | |
Figura 3. Documento criado no Word com os valores atribuidos pela aplicação Delphi. |
Obrigado e um abraço.
Prof. Omero Francisco Bertol (http://www.pb.utfpr.edu.br/omero/)
Apliicações Delphi (http://www.pb.utfpr.edu.br/omero/Delphi/Exercicios.htm)
Download da Aplicação (http://www.pb.utfpr.edu.br/omero/Delphi/Artigos/Recibo.rar)