Tutorial Delphi Word
Tutorial Delphi Word
Tutorial Delphi Word
Processamento de
Relatório MS-WORD
via Delphi
1
2Processamento de Relatório MS-WORD via Delphi – By frcs 2003
[email protected]
Mostrarei como utilizar o Delphi para gerar documentos
do Microsoft Word da maneira mais direta a possível.
É lamentável que o help do Delphi não cubra este
assunto, talvez, por ser um tanto extenso, já que ele tem
haver com as funcionalidades do Word que são bastante
extensas.
Eu aprendi inicialmente a fazer o Delphi gerar arquivos
do Word, via Google. Lá, uns sites obscuros (uns em Russo,
Alemão, Japonês, etc) mostravam mais ou menos como fazer.
Também foi útil a página da Microsoft, lá tem uns
tutoriais de Visual Basic onde altos comandos podem ser
aproveitados.
Sem mais bla-bla-bla ,vamos começar:
Existem duas maneiras de fazer um documento: Na torança,
Ou com o auxílio de componentes do Delphi. Cada uma tem suas
vantagens.
1. Na Torança
a. Você terá mais controle do que faz;
b. Sem erros de RPC (uma coisa que acontecia direto);
c. É muito mais trabalhoso (isso é um fato a se
considerar);
2. Componentes
a. É bem mais intuitivo;
b. Mais fácil de fazer analogias com os comandos em
Visual Basic;
2
3Processamento de Relatório MS-WORD via Delphi – By frcs 2003
[email protected]
Minha proposta será de um relatório de uma consulta de
uma clínica veterinária, terão várias entidades interessantes
para serem remetidas ao Word, como tabelas, labels, e campos
formatados (figura 1).
Obviamente por uma questão de simplicidade,
ocultarei informações secundárias como banco de dados e como
deixar o formulário bem feito (isso aí cada um que se vire).
fig.1
fig.2
3
4Processamento de Relatório MS-WORD via Delphi – By frcs 2003
[email protected]
Chamaremos o primeiro de wapp e o segundo de wdoc.
O que cada um deles faz, com absoluta certeza não tenho
como dizer, mas suponho que o primeiro é necessário para
manipular o aplicativo em níveis de inicialização e escrita,
enquanto o segundo seria útil para inserirmos entidades como
fotos, macros, cabeçalho em um documento ativo.
Construindo o Relatório
O relatório está todo escrito com fonte do tipo Arial,
então passamos o seguinte comando:
wapp.Selection.Font.Name:='arial';
wapp.Selection.Font.Bold:=1;
wapp.Selection.Font.Size:=14;
4
5Processamento de Relatório MS-WORD via Delphi – By frcs 2003
[email protected]
wapp.Selection.TypeText('escreva aqui!');
wapp.Selection.TypeParagraph;
wapp.Selection.Tables.Add(wapp.Selection.Range,10,10);
5
6Processamento de Relatório MS-WORD via Delphi – By frcs 2003
[email protected]
wapp.Selection.ParagraphFormat.Alignment:=1;
wapp.Selection.Tables.Item(1).Columns.Item(1).SetWidth(100,
wdAdjustNone);
6
7Processamento de Relatório MS-WORD via Delphi – By frcs 2003
[email protected]
Vacinas
Vermífuga
Ferro
Prescrição:
Peso abaixo do normal e problemas gástricos leves, apresenta perda de pêlos na região
auricular.
- Aplicação intra- venosa de vermífugo
- Aplicação intra- venosa de ferro (10ml por quilo)
- Banho de solução salina 3 vezes por semana durante 1 mes
___________________________________________
Dr. Dráuzio Balela - Veterinário
7
8Processamento de Relatório MS-WORD via Delphi – By frcs 2003
[email protected]
Fazendo na Tora
Aqui está a parte onde você pode fazer tudo na tora, sem
nenhum componente. Ela dá menos erros, mas requer atenção
redobrada e perder-se a grande ajuda do Code Completion.
1-
criar uma variável global : Dword:Variant
2-
Interno à Função declarar uma variável: var S:OleVariant
3-
Dword := CreateOleObject('Word.Application');
**cria um aplicativo do Word
4-
Dword.Documents.Add;
**cria um documento do microsoft word
5-
S := Dword.Selection;
**atribui à S o documento do word que foi construído
6-
Dword.ActiveDocument.PrintOut;
**clica no botão imprimir
7-
S.ParagraphFormat.Alignment :=0;
**coloca o alinhamento à esquerda
8-
S.TypeParagraph;
**pula uma linha
9-
S.Font.size := 12;
S.Font.Bold := 1;
**Para manipular as fontes
8
9Processamento de Relatório MS-WORD via Delphi – By frcs 2003
[email protected]
10-
S.TypeText('meu texto');
**escreve no word o texto entre as quotes
11-
S.Tables.Add(S.Range,numero_de_linhas,numero_de_colunas);
**para especificar uma tabela
12-
S.Tables.Item(1).Columns.Item(2).SetWidth(250,wdAdjustNone);
**está setando o comprimento da segunda coluna da tabela
criada e sem setar a posição do texto interno à célula
13-
S.Tables.Item(1).Cell(1,1).Range.InsertAfter('texto');
**após a tabela criada, escreve texto na célula (1,1)
14-
Dword.Application.Visible := True;
**torna o documento visível