TWord y errores aleatorios

TWord y errores aleatorios

Postby Manuel Aranda » Tue Jun 03, 2008 4:37 pm

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  Expand view  RUN
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 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
User avatar
Manuel Aranda
 
Posts: 604
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Postby Kleyber » Tue Jun 03, 2008 6:21 pm

Hola Manuel,

Una pregunta: por que estas poniendo este if

Code: Select all  Expand view  RUN
     IF lPreWord
          oWord:Visualizar()
      ENDIF


Antes de los REPLACEs? No deberia ser después?

Saludos,
Kleyber Derick

FWH / xHb / xDevStudio / SQLLIB
User avatar
Kleyber
 
Posts: 581
Joined: Tue Oct 11, 2005 11:28 am
Location: São Luiz, Brasil

Postby Manuel Aranda » Tue Jun 03, 2008 6:37 pm

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 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
User avatar
Manuel Aranda
 
Posts: 604
Joined: Wed Oct 19, 2005 8:20 pm
Location: España

Postby ADBLANCO » Tue Jun 03, 2008 6:54 pm

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
ADBLANCO
 
Posts: 299
Joined: Mon Oct 22, 2007 3:03 pm
Location: Valencia - Venezuela

Postby Manuel Aranda » Tue Jun 03, 2008 8:14 pm

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 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
User avatar
Manuel Aranda
 
Posts: 604
Joined: Wed Oct 19, 2005 8:20 pm
Location: España


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 49 guests