edgar_dh Ens

Registrado: 12 Jul 2003Mensajes: 34Ubicación: Venezuela
|
Publicado: Mie 30 Nov, 2005 12:53 pm Asunto: Ayuda word 2003 Urgente LEO y todos los que puedan ayudar |
|
|
Estimado programadores tengo el siguiente problema el cual consiste yo tengo varios documentote Word en lo cuales debo cambiar el texto “___/___/___” por un fecha que tengo almacenada en un tabla de paradox como hago, revise el foro y no encotre el siguiente codigo de Leo:
//////////////////////////////////////////////////////////////
Código:
Variant vWord, vDocumentos, vDocumento, vStoryRanges, vBuscar, vRango;
String sPath = ExtractFilePath(Application->ExeName);
String sFicheroPlantilla = sPath + "plantilla.doc";
String sFicheroGenerado = sPath + "plantilla2.doc";
//--- Abre Word
vWord = CreateOleObject("Word.Application");
vWord.OlePropertySet("Visible", !checkGuardar->Checked);
//--- Abre el documento que usaremos como plantilla
vDocumentos = vWord.OlePropertyGet("Documents");
vDocumento = vDocumentos.OleFunction("Open",
sFicheroPlantilla.c_str(), // Documento
false, // Confirmar conversiones
true, // Modo se solo lectura
false, // Añadir al menu de ficheros recientes
"" // Clave del documento
);
const int maxStory = 2;
int story[maxStory] = { 1 /*wdMainTextStory*/,
5 /*wdTextFrameStory*/ };
for (int i=0; i<maxStory; ++i)
{
vStoryRanges = vDocumento.OlePropertyGet("StoryRanges");
try
{
vRango = vStoryRanges.OleFunction("Item", story[i]);
}
catch (EOleSysError& e)
{
continue;
}
do
{
vBuscar = vRango.OlePropertyGet("Find");
vBuscar.OleProcedure("ClearFormatting");
vBuscar.OlePropertyGet("Replacement")
.OleProcedure("ClearFormatting");
//--- sustituimos una palabra
// Aqui podemos meter el bucle que va a ir reemplanzando palabras
vBuscar.Exec(Procedure("Execute")
<< "{{nombre}}" // Texto a buscar
<< VT_EMPTY // Coincidir mayusculas y minusculas
<< VT_EMPTY // Solo palabras completas
<< VT_EMPTY // Usar caracteres comodin
<< VT_EMPTY // Suena como
<< VT_EMPTY // Todas las formas de la palabra
<< true // Hacia adelante
<< VT_EMPTY // Wrap
<< VT_EMPTY // Format
<< Edit1->Text.c_str() // Reemplazar con...
<< 2 // 2 = reemplazar todo
);
//--- sustituimos otra palabra
vBuscar.Exec(Procedure("Execute") << "{{direccion}}"
<< VT_EMPTY << VT_EMPTY << VT_EMPTY << VT_EMPTY << VT_EMPTY
<< true << VT_EMPTY << VT_EMPTY << Edit1->Text.c_str() << 2);
vRango = vRango.OlePropertyGet("NextStoryRange");
} while(static_cast<IDispatch*>(vRango));
} // for i
//--- salvamos automaticamente si procede y cerramos Word
if (checkGuardar->Checked)
{
vDocumento.OleProcedure("SaveAs", sFicheroGenerado.c_str());
vDocumento.OleProcedure("Close", 0xFFFFFFFF);
vWord.OleProcedure("Quit");
ShowMessage("Documento generado.");
}
vWord = vDocumentos = vDocumento = vStoryRanges = vBuscar = vRango = Unassigned;
---------------------------------------------------------------------------
El cual tratando usar C++ Builder 4 me da problemas con “if (checkGuardar->Checked)” asi que no he podido corregirlo
Esperando si alguie me puede ayudar
Volver arriba
Buildero
Master
Registrado: 23 Dic 2003
Mensajes: 211
Ubicación: Puebla, México
Publicado: Lun 28 Nov, 2005 4:09 pm Asunto:
--------------------------------------------------------------------------------
Estimado edgar_dh...
Cita:
El cual tratando usar C++ Builder 4 me da problemas con “if (checkGuardar->Checked)” asi que no he podido corregirlo
checkGuardar es un checkbox, ¿lo has agregado a tu formulario?
También necesitas un Edit (claro, segun el ejemplo de _Leo).
Saludos
_________________
Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida.
Volver arriba
edgar_dh
Ens
Registrado: 12 Jul 2003
Mensajes: 25
Ubicación: Venezuela
Publicado: Lun 28 Nov, 2005 7:22 pm Asunto: Gracias por tu Pronta ayuda
--------------------------------------------------------------------------------
Buenos Días Gracias por la ayuda, estos momento ya se puede compilar pero al dar el clic al botón sale el siguiente caja de mensaje:
_Asserte:
Isbouns @ d:\bcb\emuvcl\utilcls.h/2410
Pres[Y]es to terminate, [N] o to continue and [C]ancel to debug
Con cualquier de las opciones que se presiones se genera una excepción y se cierra la aplicación ( Por otro lado tengo Win 2000, Office 2003 y C++ builder 4)
Si me puede ayudar se lo agradezco |
|