XyVy Master


Registrado: 25 Ago 2002Mensajes: 557Ubicación: Murcia (España)
|
Publicado: Mie 25 Feb, 2004 8:12 pm Asunto: Reemplazar texto en un Pie de Página en Word. |
|
|
Bueno ya está solucionado, la verdad es que tenía algunos problemas y no sabía porque, pues el fallo era porque en vez de usar el Document, usaba el Word.Application, y claro ahí estaba el problema, los metodos y propiedades de uno logicamente no son los del otro, por eso intentaba acceder a cosas que no existían, la función de reemplazo queda como sigue: (de nuevo gracias _Leo pues la mayoría es codigo tuyo!).
| Código: |
// Suponemos que ya hemos creado una instancia de Word.Aplication y
// hemos abierto un documento
void __fastcall TFGeneradorInformes::ReemplazarPie(Variant doc, AnsiString marca, AnsiString texto)
{
Variant sections = doc.OlePropertyGet("Sections");
Variant footers = sections.OlePropertyGet("First").OlePropertyGet("Footers");
Variant footer = footers.OleFunction("Item", 1);
Variant range = footer.OlePropertyGet("Range");
Variant vBuscar = range.OlePropertyGet("Find");
vBuscar.OleProcedure("ClearFormatting");
vBuscar.OlePropertyGet("Replacement").OleProcedure("ClearFormatting");
vBuscar.Exec(Procedure("Execute") << marca.c_str() << VT_EMPTY << VT_EMPTY << VT_EMPTY
<< VT_EMPTY << VT_EMPTY << true << VT_EMPTY << VT_EMPTY << texto.c_str() << 2);
}
|
Como os podeis fijar ahora lo que le paso no es un Word.Application, sino un Document, que ya habreis obtenido previamente al abrir el documento, le paso dos ansistring uno para la marca a buscar y el otro con el texto a reemplazar. Funciona perfectamente, por lo menos con mi W2000 y mi Office 2000.
Ciao bambinos. _________________ OJO!! Ya tenemos subforo de Bases de Datos!!
Gracias a los admins. |
|