u_WordImp() .DOT





//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