Renato Vaz Postado Abril 4, 2008 Denunciar Share Postado Abril 4, 2008 Estou terminando um sistema de cartório onde uso o Word como gerador de relatórios. Minha dúvida é como substituir uma só variável no Word por vários registros do BD.Exemplo: Word -> [D94] Substituir por -> XXXX YYYY ZZZZQuem puder me auxiliar ficarei grato. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Abril 4, 2008 Denunciar Share Postado Abril 4, 2008 como substituir uma só variável no Word por vários registros do BD.Isto é possivel se voce gerar um documento com extensão RTF, como DOC não vai darCom o arquivo .rtf pelo word voce vai usar nomes de variaveis que não poderão existir no texto do documentoexemplo: VNome, VCidade, VEnder, VBairro..etcdepois pelo delphi voce cria uma rotina para jogar o arquivo .rtf dentro de um Memo por exemploe em seguida outra rotina para procurar e substituir estas variaveis pelo conteudo do BD e salva o conteudo do Memo novamente como um documento com extensão .rtf ao abrir o documento pelo word, voce vera as variaveis trocadas pelo conteudo do BD nas posições em que voce as colocou.seria algo como foi colocado neste post http://scriptbrasil.com.br/forum/index.php...st&p=473652abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Vaz Postado Abril 4, 2008 Autor Denunciar Share Postado Abril 4, 2008 Jhonas Valeu pela dica.Vou dar olhada e depois entro em contato.Favor me enviar o seu e-mail para mantermos contato.Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Abril 5, 2008 Denunciar Share Postado Abril 5, 2008 Com o arquivo .rtf pelo word voce vai usar nomes de variaveis que não poderão existir no texto do documentoexemplo: VNome, VCidade, VEnder, VBairro..etcdepois pelo delphi voce cria uma rotina para jogar o arquivo .rtf dentro de um Memo por exemploe em seguida outra rotina para procurar e substituir estas variaveis pelo conteudo do BD e salva o conteudo do Memo novamente como um documento com extensão .rtfRenato Vaz, neste contexto, você pode dar uma olhada neste post.como DOC não vai darEm termos de uso de OLE, é possível sim, desde que haja uma instalação do do Word na máquina que dele fizer uso - já usei isto há um tempo atrás.Estou terminando um sistema de cartório onde uso o Word como gerador de relatórios. Minha dúvida é como substituir uma só variável no Word por vários registros do BD.Vou deixar um exemplo, onde no documento do Word eu tenho dois campos de formulário, adicionados a partir da barra de ferramentas Formulários, com as seguintes configurações:vNome - Tipo: Texto normal e Formato do texto: Iniciais maiúsculas;vDatNasc - Tipo: Data e Formato da data: dd/MM/yyyyEu parti do princípio de que será lido um documento modelo e gravado em outro arquivo. Se não for o caso, basta usar Save apenas.procedure TForm1.Button1Click(Sender: TObject); var WordApp :OleVariant; procedure SetValue(FieldName, FieldValue :string); begin if WordApp.ActiveDocument.Bookmarks.Exists(FieldName) then WordApp.ActiveDocument.FormFields.Item(FieldName).Result := FieldValue; end; begin WordApp := CreateoleObject('Word.Application'); WordApp.Documents.Open('c:\temp\TesteVariaveis.doc'); SetValue('vNome', 'micheus'); SetValue('vDatNasc', '26/08/1967'); WordApp.ActiveDocument.SaveAs('c:\temp\TesteVariaveis2.doc'); WordApp.Quit; end;Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Renato Vaz Postado Abril 5, 2008 Autor Denunciar Share Postado Abril 5, 2008 Valeu Micheus, em tese é isto que eu quero. Só falta uma coisa. Tenho uma variável no Word e tenho, por exemplo, três registros que eu preciso substituir em uma mesma variável. Usando o arquivo tipo DOC eu já consegui. Isto é o que esta faltando. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Abril 6, 2008 Denunciar Share Postado Abril 6, 2008 Só falta uma coisa. Tenho uma variável no Word e tenho, por exemplo, três registros que eu preciso substituir em uma mesma variável. Usando o arquivo tipo DOC eu já consegui. Isto é o que esta faltando.Renato Vaz, provavelmente o procedimento seja parecido.Se são três registros (significam três linhas no banco), você precisará de um laço (o critério você deve saber), e sendo para substituir em uma variável do Word, então você terá que concatená-los em uma variável local e depois substituí-la na variável do Word da forma como eu exemplifiquei.Se estes seus três registros, na verdade forem três campos (significam três colunas), então não há laço a fazer - apenas concatenação. Fique atento aos termos que usa. ;)Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Renato Vaz
Estou terminando um sistema de cartório onde uso o Word como gerador de relatórios. Minha dúvida é como substituir uma só variável no Word por vários registros do BD.
Exemplo: Word -> [D94] Substituir por -> XXXX
YYYY
ZZZZ
Quem puder me auxiliar ficarei grato.
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.