• Lunes 20 de Mayo de 2024, 18:37

Autor Tema:  Acceso A Word Desde Builder  (Leído 1744 veces)

desire

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Acceso A Word Desde Builder
« en: Jueves 28 de Septiembre de 2006, 16:04 »
0
Hola hace tiempo preguntaba sobre si alguien sabia combinar correspondencia desde el buiider y nadie contesto, asi que lo deje apartado xq me volvi loca buscando y no encontre nada, asi que lo hice de otra manera, pero resulta que el cliente lo ve muy complicado asi que tengo que poder acceder a un documento de word.Lo que me gustaria saber es como utilizar la propiedad Range del objeto Documts de Word xq no me funciona, lo que tengo puesto es:
   xlRango = xlDocument.Exec(Procedure("Content"));

Porfavor, espero recibir respuesto estoy desesperada. Gracias

eL_MoStRo

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Acceso A Word Desde Builder
« Respuesta #1 en: Sábado 30 de Septiembre de 2006, 00:48 »
0
Hola!!, espero y esto te ayude
Código: Text
  1.  
  2.     Variant vWord, vDocumentos, vDocumento, vSeleccion;
  3.     String sPath = ExtractFilePath( Application->ExeName );
  4.  
  5.     //--- Abre Word
  6.     try {
  7.             vWord = Variant::CreateObject( "Word.Application" );
  8.             vWord.OlePropertySet( "Visible", false );
  9.     }
  10.     catch ( ... ) {
  11.         MessageBox(0,"Probablemente Microsoft Word no se encuentre instalado", "Error de comunicacion", MB_OK | MB_ICONERROR);
  12.         return;
  13.     }
  14.  
  15.     //--- Abre el documento que usaremos como plantilla
  16.     vDocumentos = vWord.OlePropertyGet( "Documents" );
  17.     vDocumento = vDocumentos.OleFunction( "Open",
  18.                                                   sSrcFile.c_str(),  // Documento
  19.                                                   false,                      // conversiones de formato (unicode, etc)
  20.                                                   false,                       // Modo se solo lectura
  21.                                                   false,                      // Añadir al menu de ficheros recientes
  22.                                                   ""                          // Pswd del documento
  23.                                                  );
  24.  
  25.     vSeleccion = vWord.OlePropertyGet( "Selection" );
  26.  
  27.     Variant vRango = vSeleccion.OlePropertyGet( "Range" );
  28.     vRango.OleProcedure( "SetRange", 0, 0 );
  29.     Variant vBuscar = vSeleccion.OlePropertyGet( "Find" );
  30.     vBuscar.OleProcedure( "ClearFormatting" );
  31.     vBuscar.OlePropertyGet( "Replacement" ).OleProcedure( "ClearFormatting" );
  32.     //  Sustitucion de una palabra
  33.     vBuscar.Exec( Procedure( "Execute" )
  34.         << "texto a buscar"               // Texto a buscar
  35.         << VT_EMPTY                   // Coincidir mayusculas y minusculas
  36.         << VT_EMPTY                   // Solo palabras completas
  37.         << VT_EMPTY                   // Usar caracteres comodin
  38.         << VT_EMPTY                   // Suena como
  39.         << VT_EMPTY                   // Todas las formas de la palabra
  40.         << true                       // Hacia adelante
  41.         << VT_EMPTY                   // Wrap
  42.         << VT_EMPTY                   // Format
  43.         << "Texto a remplazar"        // Reemplazar con...
  44.         << 2                          // 2 = reemplazar todo
  45.     );
  46.     vDocumento.OleProcedure( "SaveAs", "Nombre.doc" );
  47.     vDocumento.OleProcedure( "Close", 0xFFFFFFFF);
  48.     vWord.OleProcedure( "Quit" );
  49.     vWord = vDocumentos = vDocumento = vSeleccion = vBuscar = vRango = Unassigned;
  50.  
  51.  

Con este bloque segun yo puedes abrir un documento seleccionas todo el contenido y hace una busqueda de un texto determinado y posteriormente guarda el documento. Si tienes alguna otra duda no dudes en hacer ptro post. Suldos!!

desire

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Re: Acceso A Word Desde Builder
« Respuesta #2 en: Lunes 2 de Octubre de 2006, 09:10 »
0
Hola, primero gracias por haberme dado una solucion, estoy probando y me da un error cuando ejecuta la instruccion:

 vDocumento = vDocumentos.OleFunction( "Open",
                                                 sPath.c_str(),           // Documento
                                                 false,                      // conversiones de formato (unicode, etc)
                                                 false,                       // Modo se solo lectura
                                                 false,                      // Añadir al menu de ficheros recientes
                                                 ""                          // Pswd del documento
                                                );

El error que me sale es  : [C++ Error] sysvari.h(1875): E2450 Undefined structure 'TAutoArgs<5>''

Hace falta incluir algun .h ?

desire

  • Miembro activo
  • **
  • Mensajes: 26
    • Ver Perfil
Re: Acceso A Word Desde Builder
« Respuesta #3 en: Lunes 2 de Octubre de 2006, 09:37 »
0
Hola , eL_MoStRo el post que he enviado antes ya lo he solucionada pero ahora lo que me ocurre es que independientemente del texto que ponga a buscar siempre me lo encuentra cuando no es asi, sabes porque ocurre esto ?