TWord y errores aleatorios

Post Reply
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

TWord y errores aleatorios

Post by Manuel Aranda »

Estoy usando la clase TWORD para fusión de correspondencia y a veces se produce este error (no siempre) cuando evito usar oWord:Visualizar():
Error description: Error Word.Application/16389 E_FAIL: DOCUMENTS
Args:

Stack Calls
===========
Called from: win32ole.prg => TOLEAUTO:DOCUMENTS(0)
Called from: => HB_EXECFROMARRAY(0)
Called from: win32ole.prg => TOLEAUTO:GET(397)
Called from: tword.prg => TWORD:OPENDOC(429)
Called from: socios.prg => FUSIONWORD(1140)
Aquí dejo el trozo de código que uso por si alguien me puede ayudar:

Code: Select all

IF FILE (cRutaDoc)
   //
   FOR nRecorre:= 1 TO len(aSele)
      cBusca:=aSele[nRecorre]
      (cUsaBase)->(DbGoTo(cBusca))
      //
      cNombre   = (cUsaBase)->Nombre
      cDomicilio= (cUsaBase)->Domicilio
      cCLP      = (cUsaBase)->CPostal+"-"+ALLTRIM((cUsaBase)->LOCALIDAD)+" ("+ALLTRIM((cUsaBase)->PROVINCIA)+")"
      //
      oWord := Tword():New()
      oWord:OpenDoc(cRutaDoc)
      //
      IF lPreWord
          oWord:Visualizar()
      ENDIF
      //
      oWord:Replace("[NOMBRE]",cNombre)
      oWord:Replace("[DOMICILIO]",cDomicilio)
      oWord:Replace("[CPOSTALYLOCALIDAD]",cCLP)
      //
      oWord:PrintDoc()
      oWord:End(.F.)
      //
   END FOR
  //
ELSE
  MsgStop("Debe de elegir un documento de WORD")
ENDIF
//
Un saludo,
Manuel

xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
User avatar
Kleyber
Posts: 581
Joined: Tue Oct 11, 2005 11:28 am
Location: São Luiz, Brasil

Post by Kleyber »

Hola Manuel,

Una pregunta: por que estas poniendo este if

Code: Select all

     IF lPreWord 
          oWord:Visualizar() 
      ENDIF 
Antes de los REPLACEs? No deberia ser después?

Saludos,
Kleyber Derick

FWH / xHb / xDevStudio / SQLLIB
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Hola Kleyber:

Con lPreWord determino si quiero previsualizar el documento o no. Si lPreWord es .T. entonces se previsualiza el documento y se ve como se van haciendo los REPLACE y después se imprimen sin problema tantos documentos como registros hay en aSele.
En cambio si lPreWord es .F. (no se previsualiza el documento) el primer documento se imprime correctamente, pero en alguno de los siguientes da el error mencionado.

Gracias.
Un saludo,
Manuel

xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
User avatar
ADBLANCO
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Post by ADBLANCO »

DISCULPA, (tirandola a pegar)

No será que algún documento no existe???

No sería bueno preguntar por la existencia del documento en el disco antes de proceder??

No se, es solo un pálpito


Suerte
Saludos

Angel, Valencia, Venezuela

xH .997 - FW 7.9 - BCC55 - WorkShop - MySql
User avatar
Manuel Aranda
Posts: 561
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Post by Manuel Aranda »

Angel:

El documento es único y lo fusiono con varios registros (tres registros, tres copias del mismo documento pero con distintos datos) y ya se determina si existe en la primera linea: IF FILE (cRutaDoc)
Un saludo,
Manuel

xH 1.2.3, FWH 14.09, BC++ 5.8.2, xVerce CW 1.0, PellesC
Post Reply