Ir para conteúdo
Fórum Script Brasil
  • 0

Delphi com Word


Renato Vaz

Pergunta

5 respostass a esta questão

Posts Recomendados

  • 0
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 dar

Com o arquivo .rtf pelo word voce vai usar nomes de variaveis que não poderão existir no texto do documento

exemplo: VNome, VCidade, VEnder, VBairro..etc

depois pelo delphi voce cria uma rotina para jogar o arquivo .rtf dentro de um Memo por exemplo

e 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=473652

abraço

Link para o comentário
Compartilhar em outros sites

  • 0
Com o arquivo .rtf pelo word voce vai usar nomes de variaveis que não poderão existir no texto do documento

exemplo: VNome, VCidade, VEnder, VBairro..etc

depois pelo delphi voce cria uma rotina para jogar o arquivo .rtf dentro de um Memo por exemplo

e 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

Renato Vaz, neste contexto, você pode dar uma olhada neste post.

como DOC não vai dar
Em 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/yyyy

Eu 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

Link para o comentário
Compartilhar em outros sites

  • 0
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

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...