Página 1 de 1

Como Fechar o word apos impressão ??

Enviado: 02 Nov 2018 11:15
por carlos moc
** Desde já obrigado pela atenção e colaboração **

Não estou conseguindo finalizar o word após a impressão de documentos,aparece a seguinte mensagem :

Error description: Error BASE/1004 Class: 'NIL' has no exported method: INVOKE
Args:
[ 1] = C Close

Stack Calls
===========
Called from INVOKE(0)
Called from TWORD:END(249)
Called from FICHAMODELO17(685)

//----------------------------------------------------------------------------------//
oWord := TWord():New() // inicia o objeto OLE Word
//TRY
if oWord:IsVisible()
oWord:Hide()
endif
oWord:OpenDoc( cArqDoc ) // abre o documento modelo
for xx := 1 to len( aCampos )
oWord:Replace( '['+aCampos[xx,1]+']' , aCampos[xx,2] )
next


if aRadio[1] = 1
oWord:preview() // visualiza o documento
else
oWord:PrintDoc(.f.) // imprime o documento
oWord:end()
endif
//oWord:Visualizar() // visualiza o documento

oWord:CloseDoc( cArqDoc )
oWord:end()

Como Fechar o word apos impressão ??

Enviado: 02 Nov 2018 12:12
por fladimir
Percebi q esta usando uma classe, não conheço essa classe q usa, mas talvez o erro não esteja em fechar propriamente e sim no método END

Experimenta trocar a linha

Código: Selecionar todos

oWord:End()
por

Código: Selecionar todos

oWord := NIL
Digo isso sem analisar a classe baseado no erro retornado, pq vi q antes de chamar o método END() o colega já chamou o método pra fechar o documento, então talvez a sugestão acima resolva.

Como Fechar o word apos impressão ??

Enviado: 03 Nov 2018 01:38
por alxsts
Olá!

Esta classe é do FiveWin. Remova a linha destacada abaixo e veja se funciona. Este método End deve ser o destrutor da classe. Está finalizando duas vezes e na segunda vez a variável que continha a instância já deve estar com o valor NIL.

Código: Selecionar todos

if aRadio[1] = 1
   oWord:preview() // visualiza o documento
else
   oWord:PrintDoc(.f.) // imprime o documento
   // oWord:end() ============================> Remover esta linha
endif
//oWord:Visualizar() // visualiza o documento

oWord:CloseDoc( cArqDoc )
oWord:end()

Como Fechar o word apos impressão ??

Enviado: 03 Nov 2018 02:48
por fladimir
Bem observado Alexandre, provavelmente esta encerrando antes e ao tentar depois ocorre o erro.