merge no delphi.docx
Post on 13-Feb-2018
218 Views
Preview:
TRANSCRIPT
-
7/23/2019 merge no delphi.docx
1/12
Gerandodocumentos RTFcom TPageProducer s para web? No! Vamos resolver
problemas com solues Ve"a neste art#gode $an#el %#ldt &cesso e'clus#vo para
&ss#nantes
0
Gostei (0) (0)[fechar]
Voc no gostou da qualidadedeste contedo?
(opcional) Voc poderia comentar o que no lhe agradou?
Confirmo meu voto negativo
.
s para web? No! Vamos resolver problemas com
solues
617
http://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617http://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617http://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617http://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617http://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617http://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617http://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617http://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617 -
7/23/2019 merge no delphi.docx
2/12
Estes dias respondi em um frum uma pergunta de um participante, indicando
problemas para gerar um relatrio no QuickReport uando o relatrio tem mais de
uma p!gina" #ote ue possi$elmente o te%to do relatrio estar! inclu&do dentro do
seu e%ecut!$el" 'sto muito ruim para processos de manuten*o" + solu*o para a
pergunta acima pode ser usando o componente para imprimir mais de um relatrio
no QuickReport (QRmpositeReport), mas isto assunto para outra coluna" -ou
mostrar como resol$er este tipo de problema usando o componente .age.roducer"
TPageProducer est na aba eb. No s para apl"caes web?
+ resposta n*o" / .age.roducer um componente e%tremamente simples, mas
e%tremamente til para ualuer processo de troca de marca1es em arui$os em
formato e%to" 2m arui$o R3 (Rich e%t 3ormat) baseado em uma linguagem
de marca*o, como ocorre com o 456,por e%emplo"
/ ob7eti$o deste artigo mostrar como usar o .age.roducer para modificar o
contedo de um documento R3 ue possui marca1es, como as ue colocamos em
nossas p!ginas de internet"
# documento de teste
-e7a na 3igura 8 o documento ue foi editado no 9ord.ad e sal$o em formato R3"
Figura 1 Documento editado com o Wordpad. Veja as Tags transparentes no texto
-
7/23/2019 merge no delphi.docx
3/12
:om o componente .age.roducer, podemos indicar tags dentro do documento"
Estas tags iniciam com ; e s*o seguidas de uma identifica*o, ue o nome da
tag" ?*o terminadas com o caractere ;@>" E%emploA
-
7/23/2019 merge no delphi.docx
4/12
%dit#a$el&Caption surio
T#a$eled%dit Name %d%*ail
%dit#a$el&Caption %+*ail
T#a$eled%dit Name %d,ataContato
%dit#a$el&Caption ,ata de Contato
T#a$eled%dit Name %d-rquivo.ase
%dit#a$el&Caption -rquivo .ase
T.utton Name .tnrocurar-rquivo.ase
Caption rocurar
T#a$eled%dit Name %dasta/aida
%dit#a$el&Caption asta /a'da
T.utton Name .tnrocurarasta/aida
Caption rocurar
-
7/23/2019 merge no delphi.docx
5/12
T.utton Name .tn!erar
Caption !erar
T0pen,ialog Name 0pen,ialog
Title %scolha arquivo "TF
Filter -rquivos "TF (1&rtf)21&rtf
Tageroducer Name ageroducer
-
7/23/2019 merge no delphi.docx
6/12
Figura 2 Tela construda para testar a gerao de ar!ui"o TF "ia componente T$age$roducer
+gora temos ue escre$er um pouco de cdigo" -amos comear com o e$ento
/n:reate do 3ormul!rio, dispon&$el na 6istagem 8, para inicialiCar alguns
componentes da interface"
%istagem 1& '"ento (n)reate do *ormul+rio
-
7/23/2019 merge no delphi.docx
7/12
procedureTFrmPrincipal.FormCreate(Sender: TObject);
begin
EdArquivoa!e.Te"t :#
E"tractFilePat$(Application.E"e%ame)&'ba!ete!te.rt';
EdPa!taSaida.Te"t :#
E"tractFilePat$(Application.E"e%ame)&'!aida';
Open*ialo+.,nitial*ir :#
E"tractFilePat$(Application.E"e%ame)&'ba!e';
Ed*ataContato.Te"t :# Format*ateTime('dd-mm- $$:nn'/ no0);
end;
:om isto os caminhos dos arui$os base para rodar a aplica*o estar*o prF
configurados, assim como o campo com a data de contato"
:aso o usu!rio ueira selecionar outro arui$o de base para trocar as $ari!$eis,
$amos abrir um di!logo para permitir esta sele*o" -e7a isto na 6istagem "
%istagem 2& '"ento (n)lic, do -oto tn$rocurar/r!ui"oase
procedureTFrmPrincipal.tnProcurarArquivoa!eClic1(Sender: TObject);
-
7/23/2019 merge no delphi.docx
8/12
begin
if((Open*ialo+.E"ecute)and
(FileE"i!t!(Open*ialo+.File%ame))) then
EdArquivoa!e.Te"t :# Open*ialo+.File%ame;
end;
/utra configura*o ue pode ser feita se refere pasta para sa&da do formul!rio"
-e7a o ccdogo para permitir a troca desta, na 6istagem H"
%istagem 0& '"ento (n)lic, do -oto tn$rocurar$astaaida
procedureTFrmPrincipal.tnProcurarPa!taSaidaClic1(Sender: TObject);
var
pa!ta : String;
begin
pa!ta :# EdPa!taSaida.Te"t;
if(Select*irector(pa!ta/
2!dAllo0Create/ !dPerormCreate/ !dPrompt3/4555)) then
-
7/23/2019 merge no delphi.docx
9/12
EdPa!taSaida.Te"t :# pa!ta;
end;
Vamos ao %ue "nteressa! &erao do documento!
-amos ao cdigo referente ao bot*o de gera*o e depois o cdigo mais importante,
referente ao .age.roducer, ue far! a troca das informa1es configuradas no
documento R3"
-e7a o cdigo ue $ai controlar a gera*o do no$o arui$o na 6istagem I"
%istagem & '"ento (n)lic, do -oto tn3erar
procedureTFrmPrincipal.tn6erarClic1(Sender: TObject);
varTe"to7e!ultado : TStrin+8i!t;
%omeArquivoSaida : Strin+;
begin
Pa+eProducer.9T8File :# EdArquivoa!e.Te"t;
Te"to7e!ultado :# TStrin+8i!t.Create;
%omeArquivoSaida :# ,ncludeTrailin+Pat$*elimiter(
EdPa!taSaida.Te"t) &
Format*ateTime('mmdd$$nn!!'/no0) &
-
7/23/2019 merge no delphi.docx
10/12
'
-
7/23/2019 merge no delphi.docx
11/12
%istagem 4& '"ento (n5T6%Tag do componente $age$roducer
procedureTFrmPrincipal.Pa+eProducer9T8Ta+(Sender: TObject; Ta+:
TTa+;
constTa+Strin+: Strin+; Ta+Param!: TStrin+!; var7eplaceTe"t:
Strin+);
begin
if(Ta+Strin+ # 'titulo') then
7eplaceTe"t :# EdTitulo.Te"t;
if(Ta+Strin+ # 'u!uario') then
7eplaceTe"t :# Ed=!uario.Te"t;
if(Ta+Strin+ # 'email') then
7eplaceTe"t :# EdEail.Te"t;
if(Ta+Strin+ # 'data') then
begin
if(Ta+Param!.>alue!2'ormato'3 ?@ '') then
7eplaceTe"t :# Format*ateTime(Ta+Param!.>alue!2'ormato'3/
StrTo*ateTime(Ed*ataContato.Te"t))
else
-
7/23/2019 merge no delphi.docx
12/12
7eplaceTe"t :# Ed*ataContato.Te"t;
end;
end;
3eito isto o nosso aplicati$o para gerar documentos R3s usando o componente
.age.roducer est! pronto" -ocJ pode agora montar auele processo para gera*o
de contratos usando este tipo de solu*o, e%tremamente simples"
Lai%e o cdigo fonte com esta aplica*o pronta para uso"
#eia mais em3 !erando documentos "TF com Tageroducer
http344555&devmedia&com&$r4gerando+documentos+rtf+com+
tpageproducer46789i:;;6c
http://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617#ixzz3nWd06XUchttp://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617#ixzz3nWd06XUchttp://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617#ixzz3nWd06XUchttp://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617#ixzz3nWd06XUchttp://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617#ixzz3nWd06XUchttp://www.devmedia.com.br/gerando-documentos-rtf-com-tpageproducer/617#ixzz3nWd06XUc
top related