 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
iGNORADO Invitado
|
Publicado: Mie 16 Jun, 2004 8:38 pm Asunto: Adicionar una fila a una tabla usando OLE!!! |
|
|
Buenas tardes,
Tengo una tabla en un documento plantilla de Word, quiero ubciarme en una fila, en la ultima fila exactamente e ir agregando filas a la tabla y luego insertar texto en esas filas insertadas...pero creen que he podido??? noooo!!!!!!, eso esta muy dificil, visite el link buscar y encontre varios ejemplos, pero no entiendo ni mu!!!, busque documentacion sobre OLe en la red con Builder y no encuentro nada, que alguien me puede echar una mano con ese codigo.., que tya me tiene loco,
de antemano gracias por la ayuda.
Disculpenme las molestias.
saludos |
|
| Volver arriba |
|
 |
Ignoradp Invitado
|
Publicado: Jue 17 Jun, 2004 7:43 am Asunto: ? |
|
|
Alguien que me auxilie por favor.
Gracias y disculpen las molestias
Saludos |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Jue 17 Jun, 2004 7:59 am Asunto: |
|
|
Hola.
Dentro del foro existen varias respuestas en relación a tablas. Al leer que has estado buscando cosas sobre OLE me entra la duda: ¿no sabes añadir filas a la tabla o ni siquiera sabes abrir Word? Concreta un poco más y te ayudaremos mejor y más rápido.
El pssudo código que deberís emplear es el siguiente:
1º] Abrir Word y obtener una instancia a él.
2º] Abrir Documento con la tabla que quieres manipular.
3º] Identificar la tabla que quieres y almacenarla en una variable tipo Variant.
4º] Utilizar las funciones y métodos del objeto Tabla de Word. Puedes consultar la ayuda de VBA para Word, aunque lo más fácil es meterte en word y hacerte una macro con los pasos que quieres hacer. Luego editas la macro y observas las funciones y parámetros que utiliza word.
| Código: | Selection.InsertRows 1
Selection.Collapse Direction:=wdCollapseStart
Selection.TypeText Text:="1"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="2"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="3"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="4"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="5"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.InsertRows 1
Selection.Collapse Direction:=wdCollapseStart
Selection.TypeText Text:="1.1"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="2.1"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="3.1"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="4.1"
Selection.MoveRight Unit:=wdCharacter, Count:=1
Selection.TypeText Text:="5.2"
|
La anterior macro inserta una fila (5 columnas) y añade los textos "1", "2", "3", "4", "5" y luego añade otra fila (función "InsertRows", con parámetro 1 -número de filas-) y sigue añadiendo texto.
Un saludo y si concretas un poco más... pues eso, te ayudaremos mejor. Ya me dirás. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Ignorado Invitado
|
Publicado: Jue 17 Jun, 2004 7:44 pm Asunto: ? |
|
|
Hola, gracias por responder, pero no entiendo como puedo usar el codigo de la macro que pusiste en el builder,..mi problema es el siguiente:
Abro un documento en word llamado plantilla que como su nombre lo indica es una plantilla, en dicha plantilla busco ciertas palabras y reemplazo con un texto especifico, usando el codigo que posteo _Leo hace algun tiempo, una vez termino de reemplazar el texto quiero ubicarme en la ultima fila de la unica tabla que tengo en la plantilla y adicionar varias filas e ir insertando texto en cada columna de la fila....
Pero no se como ubicarme en elfinal de la tabla que tengo, y empezar a adicionar las filas juinto con su correspondiente texto..!!
De todas formas gracias cualquier ayuda,
Saludos. |
|
| Volver arriba |
|
 |
Ignorado Invitado
|
Publicado: Dom 20 Jun, 2004 5:02 am Asunto: ? |
|
|
Hola Ceruleo, me quede esperando tu aclaracion dame una manit apor favor?? estpy muy xconfundido..
dwe natemano gracias...
Saludos |
|
| Volver arriba |
|
 |
Ignorado Invitado
|
Publicado: Lun 21 Jun, 2004 4:54 am Asunto: ?? |
|
|
POr que nadie me hecha una mano, ???, uumna pistica mas please, por favor!!!
En donde encuentrio la ayuda de Office para OLe cual es el archivo ???
Mil gracias... y disculpenme..
Bye. |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Lun 21 Jun, 2004 8:20 am Asunto: |
|
|
Hola.
Busca el archivo VBAWRD8.HLP (versión 8, Word 2000), o un archivo tipo VBAW*.HLP.
En él encontrarás los objetos y colecciones de Word, y los métodos que posee cada uno de estos objetos.
Busca en "Contenido | Referencia a Visual Basic para Microsoft Office | Objetos Microsoft Office.
Lo primero que tienes que hacer es localizar la tabla de tu plantilla. La tabla pertenenece a la colección Tables.
| Código: | Variant vWord; //* Objeto Word abierto y todo eso...
Variant vTables,vTable;
vTables=vWord->OlePropertyGet("Tables");
vTable=vTables.Items(1);
|
Luego tienes que ir al final de la tabla (eso ya no sé hacerlo, pero es probar con una macro).
Y por último añadir filas:
| Código: | Variant vRow;
vRow=vTable.OlePropertyGet("Rows").OleFunction("Add");
|
Esto no está probado pero por ahí deberían ir los tiros.
Un saludo y suerte. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Ignorado Invitado
|
Publicado: Mar 22 Jun, 2004 5:39 am Asunto: ? |
|
|
Buenas, Cerúleo, mil gracias por darme una mano empezare por buscxar el archiovo de ayuda, y luego te cuento como me fue...de verdad gracias, nadie me habia orientado en el foro...
Nos vemos.
bye. |
|
| Volver arriba |
|
 |
Kurroman Lt

Registrado: 07 Dic 2003Mensajes: 79
|
Publicado: Mar 22 Jun, 2004 8:12 am Asunto: |
|
|
Es que es un tema bastante jodido, por eso nadie te habrá ayudado. Yo también estoy automatizando Word y en su día también pregunte lo tuyo
Al final como no tuve respuesta y me resultaba bastante difícil use quickreport pal tema de tablas dinámicas.
Si consigues que te funcione te ruego que expongas tu código para los demás. Mas que nada lo de situarse al final de la tabla para poder insertar filas. |
|
| Volver arriba |
|
 |
_Leo Site Admin

Registrado: 11 Ago 2002Mensajes: 1875Ubicación: Lanzarote - Islas Canarias (España)
|
Publicado: Mie 23 Jun, 2004 2:20 am Asunto: |
|
|
A ver si os sirve esto:
| Código: | // Usamos una instancia de Word abierta
Variant vWord = GetActiveOleObject("Word.Application");
Variant vDocumento = vWord.OlePropertyGet("ActiveDocument");
// Localizamos la primera tabla que hay en el documento
Variant vTablas = vDocumento.OlePropertyGet("Tables");
Variant vTabla = vTablas.OleFunction("Item", 1);
// Añadimos una nueva fila al final
Variant vFilas = vTabla.OlePropertyGet("Rows");
Variant vFila = vFilas.OleFunction("Add");
// Recorremos y rellenamos las celdas de la fila añadida
Variant vCeldas = vFila.OlePropertyGet("Cells");
int numColumnas = vCeldas.OlePropertyGet("Count");
for (int i=1; i<=numColumnas; i++)
{
Variant vCelda = vCeldas.OleFunction("Item", i);
Variant vRango = vCelda.OlePropertyGet("Range");
vRango.OlePropertySet("Text", i);
} |
Otro mensaje de hace un año que puede servir:
https://cppbuilder.es/viewtopic.php?t=5428 |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|