Jump to content
Fivewin Brasil

Classe TWord - Resolvido


betovsp

Recommended Posts

Vlw João, agora não consigo dar um replace e abrir o word

sempre da o "erro ao abrir gerenciador de textos"

STATIC FUNCTION ImprimeWord()
LOCAL cDirWord:=CurDrive() +":\"+ CurDir()
Local cFile:=cDirWord+"\RECALC.DOC"
oWord := TWord():New()
If ( oWord:IsVisible() )
oWord:Hide()
Endif
sysWait(1)
TRY
oWord:OpenDoc(cFile)
oWord:Replace( "{NRCONTRATO}", vContrato)
CATCH oError
// E avisamos ao usuario o motivo do erro!
MsgStop("Erro ao Abrir Gerenciador de Textos.","Word")
Return NIL
End
oWord:Preview()
//oWord:Printdoc(.F.)
//oWord:PrintDoc( .F., , , , , , , nPrtcopia)
oWord:End()
Return(.T.)
Link to comment
Share on other sites

Olá Betovsp;


O erro pode está sendo provocado devido a "cDirWord:=CurDrive() +":\"+ CurDir()".

Tente por o seu "RECALC.DOC" em uma pasta e copia-lo para uma pasta temporária conhecida exemplo "C:\doc_tmp" e trocar "cDirWord+"\RECALC.DOC" por "C:\doc_tmp"\RECALC.DOC" e veja se funciona, pois tive um problema semelhante e o Evandro me passou a dica. Hoje faço assim :

cORIG := "AUXILIAR\Ficha de paciente.DOC"

cDEST := "C:\ODTTEMP\MODELO\FICHA.doc"

// Copia o arquivo original para a pasta temporária

COPYFILE(cORIG ,cDEST,.F.)

// Gerar um array com nome do "campo" que estará entre [] a ser substituído no word e o conteúdo do arquivo de dados

SELECT FICHP
ZAP
APPEND BLAN
REPLACE COPACCAR WITH STRZERO(PACIE->CODIGOPA,5) // CÓDIGO
REPLACE NOPACCAR WITH ALLTRIM(PACIE->NOMEDOPA) // NOME
REPLACE DNPACCAR WITH DTOC(PACIE->DTANASPA) // DATA NASCIMENTO
REPLACE MRPACCAR WITH ALLTRIM(PACIE->MEDICOPA) // MÉDICO
REPLACE DIPACCAR WITH DTOC(PACIE->DTAINCPA) // DATA INICIO
aCampos := {}
//------------------- DADOS DO PACIENTE
aadd( aCampos, { 'codpaci',ALLTRIM(FICHP->COPACCAR ) } ) // CÓD. PACIENTE
aadd( aCampos, { 'nompaci',ALLTRIM(FICHP->NOPACCAR ) } ) // NOME PACIENTE
aadd( aCampos, { 'dtnpaci',ALLTRIM(FICHP->DNPACCAR ) } ) // DT NASCI
aadd( aCampos, { 'medresp',ALLTRIM(FICHP->MRPACCAR ) } ) // MÉD. RESPON
aadd( aCampos, { 'dtintra',ALLTRIM(FICHP->DIPACCAR ) } ) // DATA DE INICIO
// Invoca rotina de impressão e passa como parametro a Array criadas
PREEFIPA(aCampos) // PREENCHER FICHA DO PACIENTE
...
...
//--------------------------------- IMPRESSÃO
FUNCTION PREEFIPA( aCampos )
local x, oWord, cModelo:="C:\ODTTEMP\MODELO\FICHA.doc" //importante colocar a letra do drive senão dá erro
oWord := TWord():New() // inicia o objeto OLE Word
if oWord:IsVisible()
oWord:Hide()
endif
oWord:OpenDoc( cModelo ) // abre o documento modelo
for x = 1 to len( aCampos )
oWord:Replace( '['+aCampos[x,1]+']' , aCampos[x,2] )
next
aRqfinal := 'C:\ODTTEMP\FICHA2.doc'
* 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:Save(aRqfinal) // salva o documento sem apresentar na tela
oWord:end()
Vander


Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...