Ver Mensaje Individual
  #2  
Antiguo 16-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Ejemplo:

Código:
procedure DumpWord(DataSet: TDataSet; WordDoc: TWordDocument);
var
  WordTable: Table;
  RowCount, ColCount: Integer;
  RowIndex, ColIndex: Integer;

begin
  DataSet.Open;
  try
    RowCount := DataSet.RecordCount;
    ColCount := DataSet.Fields.Count;
    WordTable := WordDoc.Tables.Add(WordDoc.Range, RowCount + 1, ColCount);

    for ColIndex := 1 to ColCount do
    begin
      WordTable.Cell(1, ColIndex).Range.Font.Bold := 1;
      WordTable.Cell(1, ColIndex).Range.Text :=
        DataSet.Fields[ColIndex - 1].FieldName;
      WordTable.Cell(1, ColIndex).Range.Paragraphs.Alignment :=
        wdAlignParagraphCenter;
    end;

    RowIndex := 1;
    while not DataSet.Eof do
    begin
      for ColIndex := 1 to ColCount do
        WordTable.Cell(RowIndex, ColIndex).Range.Text :=
          DataSet.Fields[ColIndex - 1].AsString;

      Inc(RowIndex);
      DataSet.Next;
    end;
  finally
    DataSet.Close;
    WordDoc.Application.Visible := true;
  end;
end;
A este procedimiento le pasas cualquier DataSet (por ejemplo un Query) y una componente TWordDocument (de la paleta Servers). El procedimiento realiza lo siguiente:
  1. Activa el DataSet.
  2. Crea una tabla en el documento de Word con tantas columas y renglones como campos y registros haya en el DataSet.
  3. Coloca un renglón de encabezados con los nombres de los campos dándoles formato de letra en negritas y centrados.
  4. Llena la tabal en Word con los registros del DataSet.
  5. Desactiva el DataSet y
  6. Abre Word.

Funciona para Word97 pero no debe haber mayor problema para Word2000.

// Saludos

Última edición por roman fecha: 28-08-2006 a las 17:33:19.
Responder Con Cita