Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-05-2011
Davervidto Davervidto is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 6
Poder: 0
Davervidto Va por buen camino
Exclamation Automatizacion Word con c++

Buenas a todos.

Soy nuevo en el Foro pero no como programador.

Estoy con un programa intentando generar un Documento de Word, si alguien necesita codigo lo pondre, pero voy a comentaros mi problema.

Insertando una tabla desde builder C++ a Word no soy capaz de meter texto en ellas.....coloco el codigo por si huviera error..... GRACIAS

Variant Tablas,Tabla1,que_celda,dentro_celda,TablasWord,Rango;
//-- crear tabla de 2x2
TablasWord=WordDocu.OlePropertyGet("Tables");
Rango=seleccion.OlePropertyGet("Range");
Tablas=TablasWord.OleFunction("Add",Rango,2,2,1,0);

//-- meter datos en celda 1-1
Tabla1=Tablas.OleFunction("Item",1);
que_celda=Tabla1.OleFunction("Cell",1,1);
dentro_celda=que_celda.OlePropertyGet("Range");
dentro_celda.OlePropertySet("Text"," texto para celda 1-1");


Compila bien, crea bien la tabla, pero al insertar texto da el siguiente error.

Project Project1.exe raised exceptio class EOleSysError with message 'Nombre desconocido'.


GRACIAS DE NUEVO
Responder Con Cita
  #2  
Antiguo 02-06-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
¿Te refieres a la línea siguiente?
Código:
dentro_celda.OlePropertySet("Text"," texto para celda 1-1");
Lo único que se me ocurre es que no exista la propiedad "Text".

Siento no ayudar más, pero hace años que no programo C++, nunca he usado Ole y el Word que uso es el de LibreOffice...
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #3  
Antiguo 02-06-2011
Davervidto Davervidto is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 6
Poder: 0
Davervidto Va por buen camino
Me refiero a escribir contenido dentro de ella, el metodo que utilizo parece estar correcto por otros codigos que encuentro, pero debe ser válido para la version 6, yo utilizo la 10. y no sera compatible.


Luego probando ocurre otro problema y es que...

Con la siguiente linea se escribe en el documento no ?
Código Delphi [-]
selection.OleFunnction("TypeText","hola mundo");

Al haber creado la tabla si coloco la linea de codigo, me la escribe en la celda 1-1 y no se como slair de la tabla.

Es un tanto raro.

HELPPPP GRACIAS
Responder Con Cita
  #4  
Antiguo 02-06-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
¿Has preguntado/buscado en la MSDN?

De todas formas, antes de que saliera el XP ya leí un libro sobre programación para NT que decía que Ole no era recomendable, y poco después que es obsoleto (como le pasó antes a DDE).
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #5  
Antiguo 02-06-2011
Davervidto Davervidto is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 6
Poder: 0
Davervidto Va por buen camino
Entonces si no utilizo OLE ?? con que lo hago, no mire la msdn estoy en ello.
si me pudieras decir con que hacerlo supongo que lo acabaria sacando utilizo OLE porque es lo unico que he visto asta ahora.

GRACIAS de todas formas.. sabe alguien algo mas...
Responder Con Cita
  #6  
Antiguo 02-06-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Creo que puede hacerse con ActiveX, que es lo que se lleva ahora. Y no, tampoco lo he usado nunca (bueno, indirectamente quizá).
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #7  
Antiguo 02-06-2011
Davervidto Davervidto is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 6
Poder: 0
Davervidto Va por buen camino
Gracias por la indicacion vere que puedo hacer....
Responder Con Cita
  #8  
Antiguo 02-06-2011
j0seant j0seant is offline
Miembro
 
Registrado: feb 2006
Posts: 38
Poder: 0
j0seant Va por buen camino
Cita:
Empezado por Ñuño Martínez Ver Mensaje
antes de que saliera el XP ya leí un libro sobre programación para NT que decía que Ole no era recomendable, y poco después que es obsoleto (como le pasó antes a DDE).
Si esto estuviera obsoleto, Microsoft y otras muchas empresas no proveerían esta forma de controlar sus programas. Incluyendo el Office 2010, incluso la versión para 64bits (más ultimísima no puede ser).

Es el mismo sistema que se utiliza en un motón de lenguajes de script para controlar programas. Incluso el propio flamante Windows 7.

Luego si hablamos de un libro de NT (y nos referimos a una versión vieja), no podría decir que OLE está obsoleto (como mucho que OLE1 está obsoleto), ya que OLE2 nació por esas fechas.

Incluso aceptaría que OLE2 está obsoleto, por eso Microsoft dice que podemos quitar el OLE de "Automation", y llamarlo así a secas. Que no son más que una forma de usar un tipo de interfaces COM. Y esto difícilmente puede estar obsoleto ya que Windows es como un Lego de objetos COM.

Me encantaría conocer el libro donde pone que esto está obsoleto, si es posible. Gracias.
Responder Con Cita
  #9  
Antiguo 02-06-2011
j0seant j0seant is offline
Miembro
 
Registrado: feb 2006
Posts: 38
Poder: 0
j0seant Va por buen camino
Cita:
Empezado por Davervidto Ver Mensaje
Insertando una tabla desde builder C++ a Word no soy capaz de meter texto en ellas...
Prueba con estos pequeños cambios:

Variant Tablas,Tabla1,que_celda,dentro_celda,TablasWord,Rango;
//-- crear tabla de 2x2
TablasWord=WordDocu.OlePropertyGet("Tables");
Rango=seleccion.OlePropertyGet("Range");
Tabla1 /*Tablas*/ = TablasWord.OleFunction("Add", Rango, 2, 2, 1, 0);

//-- meter datos en celda 1-1
// Tabla1=Tablas.OleFunction("Item", 1);
que_celda=Tabla1.OleFunction("Cell",1,1);
dentro_celda=que_celda.OlePropertyGet("Range");
dentro_celda.OlePropertySet("Text"," texto para celda 1-1");


Cita:
Empezado por Davervidto Ver Mensaje
y no se como slair de la tabla.
seleccion.OleProcedure("EndKey", 6 /*wdStory*/);
seleccion.OleProcedure("TypeText", "Fuera de la tabla");

Última edición por j0seant fecha: 02-06-2011 a las 21:43:42.
Responder Con Cita
  #10  
Antiguo 03-06-2011
Davervidto Davervidto is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 6
Poder: 0
Davervidto Va por buen camino
Cita:
Empezado por j0seant Ver Mensaje
Prueba con estos pequeños cambios:
seleccion.OleProcedure("EndKey", 6 /*wdStory*/);
seleccion.OleProcedure("TypeText", "Fuera de la tabla");

No se como agradecertelo, pero funciona MUCHAS GRACIAS ya no sabia que mas intentar..... De donde has sacado la maravillosa porpiedad de EndKey ¿? donde podria ver documentacion de OLE y automatizacion.

Una ultima cosa se insertar imagenes pero se me colocan todas en la primera pagina del Word, eso tiene solucion, utilizo el siguiente codigo.

Código:
Variant img=WordDocu.OlePropertyGet("Shapes");	
Variant imgseparador=img.OleFunction("AddPicture","c:\\dir\\separador.jpg",false,true);//,0,0,550,10);
GRACIAS DE NUEVO

Última edición por Davervidto fecha: 03-06-2011 a las 09:40:48.
Responder Con Cita
  #11  
Antiguo 05-06-2011
j0seant j0seant is offline
Miembro
 
Registrado: feb 2006
Posts: 38
Poder: 0
j0seant Va por buen camino
Cita:
Empezado por Davervidto Ver Mensaje
De donde has sacado la maravillosa porpiedad de EndKey ¿?
msdn.microsoft.com/en-us/library/ff195593.aspx

Cita:
Empezado por Davervidto Ver Mensaje
donde podria ver documentacion de OLE y automatizacion.
En la web de Microsoft hay mucha información. Para empezar la referencia sobre Word:

msdn.microsoft.com/en-us/library/ff841702.aspx

Cita:
Una ultima cosa se insertar imagenes pero se me colocan todas en la primera pagina del Word, eso tiene solucion, utilizo el siguiente codigo
Muchas de estas funciones funcionan en referencia a la página en la que estamos situados, aparte de mirar en la referencia de arriba sobre 'Shape', mira también sobre 'InlineShape'.
Responder Con Cita
  #12  
Antiguo 07-06-2011
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Cita:
Empezado por j0seant Ver Mensaje
Me encantaría conocer el libro donde pone que esto está obsoleto, si es posible. Gracias.
Creo recordar que era un libro de Norton, a finales de los noventa, y creo que lo confirmaba otro de Luís Joyanes, por las mismas fechas.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #13  
Antiguo 08-06-2011
Davervidto Davervidto is offline
Registrado
NULL
 
Registrado: may 2011
Posts: 6
Poder: 0
Davervidto Va por buen camino
Gracias a los 2 de todos modos.... me ha servido para avanzar en el programa, me quedan nubes aun (crear una nueva hoja a la que tengo,colocar la imagen donde quiera) pero bueno.... no consigo moverme bien por "msdn" sera por el ingles .

Conocen algun libro muy bueno de Automatizacion del Office ¿?

GRACIAS !!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tamaño border en word por automatización OLE Ziara C++ Builder 0 04-02-2009 11:00:40
Automatizacion WORD (Imagenes i Encabezados) lasevaweb Servers 1 22-05-2008 15:29:34
Automatización y Robótica MaMu Varios 1 08-07-2007 12:06:45
Automatizacion de word (generar documentos) alt126 C++ Builder 4 24-04-2007 04:19:27
Automatizacion de word (insertar tablas) alt126 C++ Builder 2 04-11-2005 10:44:29


La franja horaria es GMT +2. Ahora son las 04:27:34.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi