Faccruz 0 Denunciar post Postado Julho 3, 2007 Tenho esse código abaixo para alterar algumas chaves no Word. Mas tem certas chaves que ele não está alterando, já verifiquei o documento e está exatamente igual ao parametro a ser procurado. Algumas chaves repetem várias vezes. Word2k := CriaObjeto('Word.Application'); Doc := Word2k.documents.Open(FileListBox1.FileName); Word2k.Visible := True; //Substitui caracteres no word //----------------- DADOS EMPRESA ------------------- Doc.Content.Find.Execute(FindText := '<nomeempresa>', ReplaceWith := DMDados.TCadEmpresaRAZAO_EMPRESA.AsString ); Doc.Content.Find.Execute(FindText := '<cpfempresa>', ReplaceWith := DMDados.TCadEmpresaCGC_EMPRESA.AsString ); Doc.Content.Find.Execute(FindText := '<rgempresa>', ReplaceWith := DMDados.TCadEmpresaINSCR_EMPRESA.AsString ); Doc.Content.Find.Execute(FindText := '<endempresa>', ReplaceWith := DMDados.TCadEmpresaEND_EMPRESA.AsString ); Doc.Content.Find.Execute(FindText := '<bairroempresa>', ReplaceWith := DMDados.TCadEmpresaBAIR_EMPRESA.AsString ); DMDados.TCadCidade.Locate('Cod_Cid', DMDados.TCadEmpresaCID_EMPRESA.AsString, []); Doc.Content.Find.Execute(FindText := '<cidempresa>', ReplaceWith := DMDados.TCadCidadeDescr_cid.AsString ); Doc.Content.Find.Execute(FindText := '<ufempresa>', ReplaceWith := DMDados.TCadCidadeEst_cid.AsString ); //----------------- FIM DADOS EMPRESA ---------------- //----------------- DADOS CLIENTE -------------------- Doc.Content.Find.Execute(FindText := '<nomecli>', ReplaceWith := DMDados.TCadCliComercioNome_Cli.AsString ); Doc.Content.Find.Execute(FindText := '<endcli>', ReplaceWith := DMDados.TCadCliComercioEnd_Cli.AsString ); Doc.Content.Find.Execute(FindText := '<bairrocli>', ReplaceWith := DMDados.TCadCliComercioBair_Cli.AsString ); //ver se é fisica ou juridica case DMDados.TCadCliComercioTipo_Cli.AsString[1] of 'J' : begin Doc.Content.Find.Execute(FindText := '<cnpjcli>', ReplaceWith := DMDados.TCadCliComercioCGC_Cli.AsString ); Doc.Content.Find.Execute(FindText := '<iecli>', ReplaceWith := DMDados.TCadCliComercioInscr_Cli.AsString ); end; 'F' : begin Doc.Content.Find.Execute(FindText := '<cnpjcli>', ReplaceWith := DMDados.TCadCliComercioCPF_Cli.AsString ); Doc.Content.Find.Execute(FindText := '<iecli>', ReplaceWith := DMDados.TCadCliComercioRg_Cli.AsString ); end; end; DMDados.TCadCidade.Locate('Cod_Cid', DMDados.TCadCliComercioCid_Cli.AsString, []); Doc.Content.Find.Execute(FindText := '<cidcli>', ReplaceWith := DMDados.TCadCidadeDescr_cid.AsString ); Doc.Content.Find.Execute(FindText := '<ufcli>', ReplaceWith := DMDados.TCadCidadeEst_cid.AsString ); //---------------- FIM DADOS CLIENTE --------------- //--------------- DADOS CONTRATO ------------------- Doc.Content.Find.Execute(FindText := '<dtcontrato>', ReplaceWith := DateToStr(JvDtEdtInicio.Date) ); Doc.Content.Find.Execute(FindText := '<dtfimcontrato>', ReplaceWith := DateToStr(JvDtEdtFim.Date) ); //somar 1 ano Doc.Content.Find.Execute(FindText := '<valor>', ReplaceWith := JvCalcEdtMensal.Text ); //Valor mensal Doc.Content.Find.Execute(FindText := '<valorcha>', ReplaceWith := JvCalcEdtVisita.Text ); //Valor adicional Doc.Content.Find.Execute(FindText := '<diafecha>', ReplaceWith := '04' ); //dia do fechamento Doc.Content.Find.Execute(FindText := '<diafechaextenso>', ReplaceWith := 'quatro' ); DecodeDate(Now, Ano, Mes, Dia); Doc.Content.Find.Execute(FindText := '<dia>', ReplaceWith := IntToStr(Dia) ); Doc.Content.Find.Execute(FindText := '<mes>', ReplaceWith := MesExtenso(Mes) ); Doc.Content.Find.Execute(FindText := '<ano>', ReplaceWith := IntToStr(Ano) ); //Mostra Documento // Word2k.Visible := True; Delphi 7 com Word 2003 Compartilhar este post Link para o post Compartilhar em outros sites
Hugo Slepicka 0 Denunciar post Postado Julho 3, 2007 Da uma olhada aqui: http://www.activedelphi.com.br/print.php?sid=215 Compartilhar este post Link para o post Compartilhar em outros sites
Faccruz 0 Denunciar post Postado Julho 4, 2007 Da uma olhada aqui:http://www.activedelphi.com.br/print.php?sid=215Eu fui nesse site, mas apenas mostra como manipular o arquivo, o que eu queria, acho que não me expressei bem, é alterar em um arquivo já pronto no Word através de chaves, até aí tudo certo, mas tem algumas chaves não no inicio, no fim que não estão sendo altaradas, o que poderia ser?Existem chaves que se repetem. Pensei em algo como verificar se é final de arquivo, ou se ainda existem parametros a serem substituidos Compartilhar este post Link para o post Compartilhar em outros sites