![]() |
![]() |
![]() |
![]() |
![]() |
FTP | ![]() |
![]() |
CCD | ![]() |
![]() |
Buscar | ![]() |
![]() |
Trucos | ![]() |
![]() |
Trabajo | ![]() |
![]() |
Foros | ![]() |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
![]() 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 ![]() |
#2
|
||||
|
||||
¿Te refieres a la línea siguiente?
Código:
dentro_celda.OlePropertySet("Text"," texto para celda 1-1"); 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... |
#3
|
|||
|
|||
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 ?
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 |
#4
|
||||
|
||||
¿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). |
#5
|
|||
|
|||
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... |
#6
|
||||
|
||||
Creo que puede hacerse con ActiveX, que es lo que se lleva ahora. Y no, tampoco lo he usado nunca (bueno, indirectamente quizá).
|
#7
|
|||
|
|||
Gracias por la indicacion vere que puedo hacer....
![]() |
#8
|
|||
|
|||
Cita:
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. |
#9
|
|||
|
|||
Cita:
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"); 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. |
#10
|
|||
|
|||
Cita:
![]() 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); ![]() Última edición por Davervidto fecha: 03-06-2011 a las 09:40:48. |
#11
|
|||
|
|||
msdn.microsoft.com/en-us/library/ff195593.aspx
En la web de Microsoft hay mucha información. Para empezar la referencia sobre Word: msdn.microsoft.com/en-us/library/ff841702.aspx Cita:
|
#12
|
||||
|
||||
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.
|
#13
|
|||
|
|||
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 !!!! ![]() |
![]() |
|
|
![]() |
||||
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 |
![]() |
|