Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Adicionar una fila a una tabla usando OLE!!!

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Adicionar una fila a una tabla usando OLE!!! Responder citando

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
Mensaje    Asunto: ? Responder citando

Alguien que me auxilie por favor.

Gracias y disculpen las molestias


Saludos
Volver arriba
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: ? Responder citando

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
Mensaje    Asunto: ? Responder citando

Hola Ceruleo, me quede esperando tu aclaracion dame una manit apor favor?? estpy muy xconfundido..


dwe natemano gracias...

Saludos
Volver arriba
Mensaje    Asunto: ?? Responder citando

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
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: ? Responder citando

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
Mensaje    Asunto: Responder citando

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 Laughing

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.