Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Servers
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-05-2011
toni.vi toni.vi is offline
Miembro
 
Registrado: may 2003
Ubicación: Sant Fost(Barcelona)
Posts: 102
Poder: 21
toni.vi Va por buen camino
Insertar tabla en una posicion de word

He estado revisando diferentes hilos y no termino de encontrar la solución de insertar una tabla en un lugar especifico.
Código Delphi [-]
    WordTable := WordDoc.Tables.add(WordDoc.Paragraphs.last.Range, RowCount, ColCount);
En lugar de WordDoc.Paragraphs.last.Range
debería posicionarme y no se como hacerlo.
Alguna idea.
D7
Responder Con Cita
  #2  
Antiguo 31-05-2011
toni.vi toni.vi is offline
Miembro
 
Registrado: may 2003
Ubicación: Sant Fost(Barcelona)
Posts: 102
Poder: 21
toni.vi Va por buen camino
De hecho lo que necesito es que en medio de un documento donde haya un texto localizable o un marcador, insertar un tabla y pasar los registros.
Esto ultimo ya lo se hacer, con el código que he encontrado en el foro, pero no se como posicionarme e insertar, siempre me inserta o mejor me añade al final del documento y no en la posición que quiero.
Ejemplo:
Documento word
bla...............
bla...............
aqui insertar la tabla
bla...............
bla...............

Gracias
Responder Con Cita
  #3  
Antiguo 24-06-2011
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
Hola Toni,
Como suele ser habitual en mis respuestas no doy una solución a tu problema, pero te explico las opciones que he utilizado cuando se me han planteado situaciones similares a la que planteas:

1º) Insertar la tabla al final y después he añadido el resto del documento, salvo lo que pueda poner en un pie de página. Esto lo hago cuando son pocas líneas.

2º) Monto todo el contenido de lo que va a ser la tabla, separando los campos por tabuladores (#9) y las filas con cambios de línea (#13). Una vez que tengo todo montado lo que hago es sustituir un marcador dentro del texto word.

Suerte, y no dejes de comentar la solución que aplicas.
__________________
Rafita.
Responder Con Cita
  #4  
Antiguo 24-06-2011
toni.vi toni.vi is offline
Miembro
 
Registrado: may 2003
Ubicación: Sant Fost(Barcelona)
Posts: 102
Poder: 21
toni.vi Va por buen camino
la solución que he implementado es:
1.- Busco un marcador que es donde insertaré la tabla, posicionandome en este rango.
2.- Inserto la tabla.

Gracias por tu respuesta.

Toni

Código Delphi [-]
procedure InsertarTabla(DataSet: TDataSet; WordDoc: TWordDocument);
var
  WordTable: Table;
  ColIndexCount, RowCount, ColCount: Integer;
  RowIndex, ColIndex: Integer;

  Marcador : OleVariant;
begin
    RowCount := DataSet.RecordCount;
    ColCount := DataSet.Fields.Count;

    Marcador := 'TABLA_XXXX';
    //busco el marcador y si existe inserto la tabla
    if WordDocument1.Bookmarks.Exists(Marcador) then
    begin
      WordTable := WordDocument1.Tables.add(WordDocument1.Bookmarks.item(Marcador).Range, RowCount + 1, ColCount);

      //aqui hago la cabecera en negrita y en gris
      ColIndexCount := 0;
      for ColIndex := 1 to DataSet.Fields.Count do
      begin
        if DataSet.Fields[ColIndex - 1].Tag = 2 then
        begin
        ColIndexCount := ColindexCount + 1;
        WordTable.Cell(1, ColIndexCount).Range.Paragraphs.Borders.Enable := 1;
        WordTable.Cell(1, ColIndexCount).Range.Font.Bold                 := 1;
        WordTable.Cell(1, ColIndexCount).Range.Text                      := DataSet.Fields[ColIndex - 1].DisplayLabel;
        WordTable.Cell(1, ColIndexCount).Range.Paragraphs.Alignment      := wdAlignParagraphCenter;
        WordTable.Cell(1, ColIndexCount).Range.Cells.Shading.BackgroundPatternColorIndex:= wdGray25;
        end;
      end;

      RowIndex := 2;
      DataSet.First;
      while not DataSet.Eof do
      begin
        ColIndexCount := 0;
        for ColIndex := 1 to DataSet.Fields.Count do
        begin
          //los campos que su tag = 2 son los que quiero que se llenen en la tabla
          if DataSet.Fields[ColIndex - 1].Tag = 2 then
          begin
            ColIndexCount := ColindexCount + 1;
            WordTable.Cell(RowIndex, ColIndexCount).Range.Paragraphs.Borders.Enable := 1;
            WordTable.Cell(RowIndex, ColIndexCount).Range.Text                      := DataSet.Fields[ColIndex - 1].AsString;
          end;
        end;
        Inc(RowIndex);
        DataSet.Next;
      end;
    end;
end;
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
Copiar contenido de una tabla de un doc Word en una tabla de otro doc Word hades2600 Servers 0 15-03-2009 17:35:02
Insertar columnas en una tabla de Word abril0404 Servers 0 11-02-2009 18:37:48
Como insertar una tabla en un lugar especifico....WORD juliobuitrago Servers 3 02-10-2008 18:00:05
Insertar una Tabla en Word adebonis Servers 0 15-12-2007 07:53:28
Insertar filas en Tabla(word) Loviedo Servers 2 14-11-2007 00:12:40


La franja horaria es GMT +2. Ahora son las 16:27:58.


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