Ver Mensaje Individual
  #6  
Antiguo 22-07-2006
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Reputación: 21
rafita Va por buen camino
Hola compañeros
Yo aporto un trozo de código donde se abre un documento de word existente (como requiere Crack-neon) y sustituyo un "Marcador" del documento y después añado unos datos en columnas (mediante tabuladores). Al final de código intentaba convertir ese trozo del documento en una tabla, pero como me fallaba lo he borrado (y le he explicado al usuario como puede hacerlo él desde word.
Código Delphi [-]
 
procedure TFConsultas.GenerarDocumentoWord;
var Fichero, SoloLectura, SalvarCambios, FormatoOriginal, Ruta, Marcador, Contenido : OleVariant;
    MiDocumento : _document;
 begin
  // Conexión con Word
  try
    MiWord.Connect;
  except
    ShowMessage('WordXP (o posterior) no está instalado en este equipo');
    Abort;
  end;
  // selección del documento base
  Fichero:='Z:\Informatica\delphi\Bomberos-Personal\Informe de un día.doc';
  // abrir el documento seleccionado con los parámetros necesarios
  SoloLectura:=True;
  MiDocumento:=MiWord.Documents.Open(Fichero, EmptyParam, SoloLectura,
               EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam,
               EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
  // sustituir el marcador de la fecha
  Marcador:='FechaTitulo';
  Contenido:=FechaLiteral(Label2.Caption);
  if MiDocumento.Bookmarks.Exists(Marcador) then MiDocumento.Bookmarks.Item(Marcador).Range.InsertBefore(Contenido);
  // insertamos los campos de la consulta en la tabla
  MiDocumento.Paragraphs.Last.Range.Font.Size:=12;
  ADOQuery1.First;
   if ADOQuery1.RecordCount>0 then
     While Not ADOQuery1.Eof do
     begin
       MiDocumento.Paragraphs.Last.Range.Text:=ADOQuery1.FieldByName('Apellidos').AsString+', '+ADOQuery1.FieldByName('Nombre').AsString+#9
       +ADOQuery1.FieldByName('Categoria').AsString+#9
       +wManiobras+wHorasExtras+wReduccion+wDiaLibre+wBaja+#9
       +ADOQuery1.FieldByName('Observaciones').AsString+#13;
       ADOQuery1.Next;
     end;
  // aquí habría que seleccionar el trozo de documento y convertirlo en tabla, pero como ya he dicho, no lo h conseguido
  // maximizamos la ventana de Word y desconectamos
  MiWord.WindowState:=wdWindowStateMaximize;
  MiWord.ActiveWindow.WindowState:=wdWindowStateMaximize;
  MiWord.PrintPreview;
  MiWord.Visible:=True;
  SalvarCambios:=wdDoNotSaveChanges;
  FormatoOriginal:=unAssigned;
  Ruta:=unAssigned;
  try
    MiWord.Disconnect;
  except
    on e:Exception do
    begin
      ShowMessage('Se ha producido el error '+e.Message);
      MiWord.Disconnect;
    end;
  end;
end;

Espero te sirva para algo.
Saludos
__________________
Rafita.
Responder Con Cita