//Por http://www.luislacombe.com.br/Fontes.aspx
Essa integração visa automatizar a criação de contratos, cartas etc. Basicamente,
podemos ter um arquivo modelo e a partir dele informar valores para as DocVariables e assim ter um documento personalizado. Nesta documentação irei fazer um passo a passo aonde vamos simular a geração de um contrato de compra e venda a partir de um cliente cadastrado no Protheus.
O Primeiro passo será criar um documento do tipo .DOT no Word e inserir as
DocVariables nos lugares corretos para que elas sejam substituídas por valores
definidos para elas. Vamos então abrir um novo documento do Word e colocar um
trecho de um contrato de compra e venda de um imóvel:
CONTRATO DE COMPRA E VENDA DE IMÓVEL
Pelo presente instrumento particular, de um lado , nacionalidade , profissão , estado civil, portador da Cédula de Identidade, RG nº , inscrito no CPF sob o nº , residente e domiciliado à
_________________________________________________________________
Agora clique em salvar e escolha o tipo .DOT. Pronto, podemos então inserir as
DocVariables dentro do modelo do Word. Abaixo eu listei as DocVariables que irei
usar neste exemplo:
Nome_vendedor
Nacionalidade_vendedor
Profissão_vendedor
EstCivil_vendedor
RG_vendedor
CPF_vendedor
Endereco_vendedor
Para inserir uma DocVariable,deixe o curso posicionado no local aonde ela
deverá ficar e clique em inserir campo docvariable
Repita o mesmo procedimento para as demais variáveis e após isso é só
compilar o fonte WordImp e chamá-lo pelo menu. Verifique que no fonte temos que
dizer em qual local está o arquivo .DOT sendo possível também definir esse caminho
através de parâmetros do Protheus.
#INCLUDE 'PROTHEUS.CH'
#INCLUDE 'RWMAKE.CH'
User Function WordImp
// caminho do arquivo .DOT
Local cPathDot := "X:\INTEGRACAO.dot"
//Conecta ao word
Private oWord := OLE_CreateLink()
OLE_NewFile(oWord, cPathDot )
// OLE_SetDocumentVar(objeto link,nome da docvariable no word,conteúdo a ser passado para o word)
OLE_SetDocumentVar(oWord,"Nome_vendedor","Fulano da Silva Nobre")
OLE_SetDocumentVar(oWord,"Nacionalidade_vendedor","brasileira")
OLE_SetDocumentVar(oWord,"Profissão_vendedor","Programador")
OLE_SetDocumentVar(oWord,"EstCivil_vendedor","Casado")
OLE_SetDocumentVar(oWord,"RG_vendedor","02344332 SSP/RJ")
OLE_SetDocumentVar(oWord,"CPF_vendedor","065746342-53")
OLE_SetDocumentVar(oWord,"Endereco_vendedor","Av Marques de Andrade n° 123, Bairro Novo, Rio de Janeiro, RJ.")
OLE_UpdateFields(oWord)
If MsgYesNo("Imprime o Documento ?")
Ole_PrintFile(oWord,"ALL",,,1)
EndIf
If MsgYesNo("Fecha o Word e Corta o Link ?")
OLE_CloseFile( oWord )
OLE_CloseLink( oWord )
Endif
Return