Gerando um arquivo do Word pelo AdvPL usando integração com Modelos DOT

Olá pessoal…

Hoje vou mostrar como fazer uma integração entre Protheus e Word, utilizando Modelos Dot.

Parte do Word:

1 – Abra o word
2 – Escreva uma frase de exemplo qualquer, como “bom dia”
3 – Clique em qualquer trecho, vá em Inserir > Partes Rápidas > Campo

Inserindo um campo

4 – Selecione DocVariable, e coloque um nome, por exemplo, VarTeste

Nome da variável

5 – Pra conferir no Word, selecione o texto, clique com o botão direito e depois clique em Alternar Códigos de Campos

Alternando códigos de campo

6 – Se tudo deu certo, mostrará o nome da variável

Verificando a variável criada

7 – Clique em salvar como, escolha Modelo do Word (dotx) ou Modelo do Word 97/2003 (dot)

Salvando como Modelo DOT

8 – Salve em uma pasta qualquer

Parte do Protheus:

9 – Crie uma User Function, com o seguinte conteúdo:

//Cria um ponteiro e já chama o arquivo
nHandWord := OLE_CreateLink()
OLE_NewFile(nHandWord, cArquivo) //cArquivo deve conter o endereço que o dot está na máquina, por exemplo, C:\arquivos_dot\teste.dotx

//Setando o conteúdo das DocVariables
OLE_SetDocumentVar(nHandWord, "VarTeste", dToC(Date()) + " - " + Time() + " AAAAA")

//Atualizando campos
OLE_UpdateFields(nHandWord)

//Monstrando um alerta
MsgAlert('O arquivo gerado foi <b>Salvo</b>?<br>Ao clicar em OK o Microsoft Word será <b>fechado</b>!','Atenção')

//Fechando o arquivo e o link
OLE_CloseFile(nHandWord)
OLE_CloseLink(nHandWord)

10 – Compile e execute. No exemplo acima, ele irá preencher a variável VarTeste dentro do Word, com a Data, Hora e o texto AAAA em seguida

Bom pessoal, por hoje é só.
Abraços e até a próxima

Dan Atilio (Daniel Atilio)
Especialista em Engenharia de Software pela FIB. Entusiasta de soluções Open Source. E blogueiro nas horas vagas.

4 Responses

  1. Lourenço Camargo disse:

    Olá boa tarde,
    Tenho uma duvida em campo especifico ele traz salario porem o nosso sistema não está dividindo por 220 que referente a jornada semana do colaborador ….como eu faço isso para trazer no integração word sendo que variáveis não tem essa opção?
    Estou iniciando no Prothues a pouco tempo

  2. Priscila disse:

    Estou com o mesmo caso, porem usando o padrão GPEWORD, como fazer neste caso?

Deixe uma resposta