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:
- Activa el DataSet.
- Crea una tabla en el documento de Word con tantas columas y renglones como campos y registros haya en el DataSet.
- Coloca un renglón de encabezados con los nombres de los campos dándoles formato de letra en negritas y centrados.
- Llena la tabal en Word con los registros del DataSet.
- Desactiva el DataSet y
- Abre Word.
Funciona para Word97 pero no debe haber mayor problema para Word2000.
// Saludos