Consegui na internet um modelo que ao meu ver esta quase dando certo.
Como enviei em questoes anteriores, preciso abrir o Word 2003 com alguns campos preenchidos.
O metodo abaixo ira tentar abrir o Word, preenchendo variaveis pre-preenchidas que estiverem entre colchetes (ex.: [NOME])
Segue parte do fonte (esta dando erro ao abrir o Word - creio ser na parte referente aos campos/matriz.
PROCEDURE OLEDOC
local x, oWord, cModelo:=curdrive()+':\LIXO\arquivo.doc' //importante colocar a letra do drive senão dá erro
//Gerar um array com nome do "campo" que estará entre [] a ser substituído no word
// e o conteúdo do arquivo de dados
aCampos:={}
aadd( aCampos, { 'NOME', "JOSE DA SILVA" } )
aadd( aCampos, { 'CPF', "550" } )
*function ContratoWord( aCampos )
TRY
oWord := GetActiveObject( "Word.Application" )
CATCH
TRY
oWord := CreateObject( "Word.Application" )
CATCH
MsgBOX1("NÆo foi poss¡vel achar o Word instalado!!!")
RETURN
END
END
oDoc := oWord:Documents:Open(cModelo) //ABRE O WORD
for x=1 to len( aCampos )
oWord:Replace( '['+aCampos[x,1]+']' , aCampos[x,2] )
next
//oWord:preview() // visualiza o documento no preview do Word
//oWord:Visualizar() // visualiza o documento
//oWord:PrintDoc(.t.) // imprime o documento sem apresentar na tela
oWord:end()
return nil
Reparem que coloquei em comentario a linha que chama a Function ControWord por achar nao necessario.
Preciso da ajuda dos senhores clippeiros por favor.
Abraços amigos.
ERASMO