MarioMarieti Cmdr

Registrado: 28 Dic 2004Mensajes: 144Ubicación: Murcia (España)
|
Publicado: Lun 14 Ene, 2008 6:07 pm Asunto: Campos checkbox en un documento de word (checkbox=true/false |
|
|
SOLUCIONADO. Aqui os dejo como lo he solucionado.
y si alguien sabe hacerlo de otra manera que lo indique y si es más eficiente que lo diga para utilizar esa.
Variant vWord,vDocumentos, vDocument, vDocumento, vSeleccion;
//---Abre Word
try{
vWord=GetActiveOleObject("Word.Application");
}
catch(...)
{
vWord = CreateOleObject( "Word.Application" );
}
vWord.OlePropertySet( "Visible", false );
//--- Abre el documento que usaremos como plantilla
vDocumentos = vWord.OlePropertyGet( "Documents" );
vDocumento = vDocumentos.OleFunction( "Open",
sPlantillaDes.c_str(), // Documento
false, // Confirmar conversiones
false,//true, // Modo se solo lectura
false, // Añadir al menu de ficheros recientes
"" // Clave del documento
);
vSeleccion = vWord.OlePropertyGet( "Selection" );
//Reemplazamos el municipio del encabezado
//////////////////////////////////////////
//FORMA 1: cuando se sabe el nombre del marcador
vDocument = vDocumentos.OleFunction("Item", 1);
vSeleccion.OleProcedure( "Goto", -1, VT_EMPTY, VT_EMPTY, "Check1" );
Variant FormField,FCampo;
FCampo = vSeleccion.OlePropertyGet("FormFields");
FCampo = FCampo.OleFunction("Item", 1); // PONEMOS EL ITEM Nº 1 PORQUE PREVIAMENTE LO HEMOS SELECCIONADO CON LA FUNCION goto
FCampo = FCampo.OlePropertyGet("CheckBox");
FCampo.OlePropertySet("Value", true); // PONE EL CHECKBOX A TRUE
//FORMA 2: CUANDO SE SABE LA POSICION EXACTA DEL MARCADOR, EN ESTE CASO DE TIPO CHECKBOX.
FormField = vDocument.OlePropertyGet("FormFields");
FCampo = FormField.OleFunction("Item", 10);
FCampo = FCampo.OlePropertyGet("CheckBox");
FCampo.OlePropertySet("Value", false); // PONE EL CHECKBOX A FALSE
Espero que os sirva de algo |
|