Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Servers (https://www.clubdelphi.com/foros/forumdisplay.php?f=9)
-   -   Como insertar una tabla en un lugar especifico....WORD (https://www.clubdelphi.com/foros/showthread.php?t=59219)

juliobuitrago 18-08-2008 07:01:10

Como insertar una tabla en un lugar especifico....WORD
 
Si, el problema es que ya todo me funciona.
tengo una plantilla, con sus campos definidos, y el programa me crea un doucmento word sustituyendo las variables que le pongo.

Hay un post donde me escribieron como e sque puedo vaciar una tabla en un doucmento word, y no lo he probado, aunque estoy seguro que funcionará.
Pero el problema es el siguiente.

Esta tabla debe contruirse en el medio del documento, en la hoja del medio.

En el mismo documento word.

Inicio del Documento
Este es el texto del documento
Este es el texto del documento
Este es el texto del documento
Este es el texto del documento
Este es el texto del documento

Aqui la tabla..

Este es el texto del documento
Este es el texto del documento
Este es el texto del documento
Este es el texto del documento
Este es el texto del documento
Este es el texto del documento

Fin del documento.....

Alguna idea, por favor..........cómo puedo yo hacer esto...


Por desgracia, este es el ultimo paso para dar por concluido el proyecto.

Saludos

Fdo

solecito 22-09-2008 21:16:17

Tal vez te sirva poner un marcador en la plantilla en el lugar donde quieres vaciar la tabla y solo posicionarte en él sin la necesidad de modificar el resto del documento.

juliobuitrago 02-10-2008 11:33:36

Eso es lo que quiero
 
Pero....cómo manipulo el marcador......dentro del documento, desde delphi,,,?, ahi está el lio, c hacer todo lo demás, pero no esto, me ayudas, ?

solecito 02-10-2008 18:00:05

Lo manipulas desde delphi, te agrego un ejemplo de como insertar un marcador en el documento, él cual lo puedes definir desde tu plantilla y solo posicionarte en él y agregar el texto.

Ahora si solo quieres posicionarte en el marcador, puedes utilizar esta instrucción:
WordApplication1.Selection.GoTo_(What, Which, Count, bkmkname);
y agregar el texto.



Código Delphi [-]
 
procedure TForm1.AbreWord(Sender: TObject);
var
  z, linea, step : Olevariant;
  DOCFileName,NewDOCFileName,ItemIndex:OleVariant;
begin
  DOCFileName := EmptyParam;
  NewDOCFileName := True;
  ItemIndex := 1;
  CoInitialize(nil);
  WordApplication1.Connect;
  wordApplication1.Visible := true;
  if FFileName<>'' then DOCFileName :=FFileName;
  NewDOCFileName := False;
  WordApplication1.Documents.Add(DOCFileName, NewDOCFileName,Emptyparam,emptyparam);
  WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex));
  WordApplication1.Options.CheckSpellingAsYouType := False; //Desactivar comprobacion de ortografia
  WordApplication1.Options.CheckGrammarAsYouType := False;
  WordDocument1.Range.InsertParagraphAfter;
  with WordFont1 do
  begin
    ConnectTo( WordApplication1.Selection.Font );
    if checkbox1.Checked then // elige si es cursiva o normal el tipo de letra
      Italic := 1
    else
      Italic := 0;
  end;
  WordApplication1.Selection.Range.Set_Text(Edit1.Text); // agrega cualquier texto 
  z:=wdMove;
  linea := wdCharacter;
  step := length(edit1.Text);
  WordApplication1.Selection.MoveRight(linea,step,z) ;
end;
 
 
procedure TForm1.SetTextBookmark(BookmarkName,newText: string);
var
  bkmkName: OleVariant;
begin
  bkmkName := BookmarkName;
  WordDocument1.Bookmarks.Item(bkmkName).Select;
  WordApplication1.Selection.Set_Text(newText);
  self.InsertBookmark(BookmarkName,'');
end;
 
procedure TForm1.InsertBookmark(BookmarkName,BookmarkText: string);
begin
  if BookmarkName <> '' then
    WordDocument1.Bookmarks.Add(BookmarkName, EmptyParam);
  if BookmarkText <> '' then
    self.SetTextBookmark(BookmarkName,BookmarkText);
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  AbreWord; 
  InsertBookmark(edit2.text,Edit3.text); // edit2 es el nombre del marcador y el edit3 es texto que contendrá el marcador.
end;


La franja horaria es GMT +2. Ahora son las 22:05:05.

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