Como Fechar o word apos impressão ??

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

carlos moc
Usuário Nível 2
Usuário Nível 2
Mensagens: 68
Registrado em: 16 Out 2017 16:00
Localização: Montes Claros MG - Zap (38)99831-5319

Como Fechar o word apos impressão ??

Mensagem 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()
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Como Fechar o word apos impressão ??

Mensagem 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.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
alxsts
Colaborador
Colaborador
Mensagens: 3092
Registrado em: 12 Ago 2008 15:50
Localização: São Paulo-SP-Brasil

Como Fechar o word apos impressão ??

Mensagem 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()
[]´s
Alexandre Santos (AlxSts)
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

Como Fechar o word apos impressão ??

Mensagem por fladimir »

Bem observado Alexandre, provavelmente esta encerrando antes e ao tentar depois ocorre o erro.
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
Responder