alpherg Novato

Registrado: Quarta-Feira, 16 de Agosto de 2017 Mensagens: 63
|
Enviada: Sáb Fev 08, 2020 11:36 pm Assunto: Dados de um DBGrid para criar uma tabela um doc Word |
|
|
estou tentando inserir uma tabela que seus dados saem de um DBGRID para um documento especifico em Word mas todas as vezes que tento criar a tabela atraves dos dados de um DBGRID, o maximo que consigo é criar outro documento com os dados do DBGRID. Esse é o codigo que estou usando:
Código: | procedure TForm1.Button1Click(Sender: TObject);
var
x :integer ;
y: integer ;
//Word : Olevariant ;
Word : variant ;
WDoc: variant;
GColCount : integer ;
GRowCount : integer;
FormatNum: integer;
begin
Word := CreateOLEobject('Word.Application') ;
Word.Documents.open('C:\tabela.docx');
Word.Visible := True ;
Word.Documents.Add ;
GColCount := dbgrid2.Columns.Count ;
GRowCount := dbgrid2.DataSource.DataSet.RecordCount ;
Word.ActiveDocument.Range.Font.Size := dbgrid2.Font.Size;
Word.ActiveDocument.PageSetup.Orientation := 1 ;
Word.ActiveDocument.Tables.Add( Word.ActiveDocument.Range,GRowCount+1,GColCount);
Word.ActiveDocument.Range.InsertAfter('Date ' + Datetimetostr(Now));
Word.ActiveDocument.Range.Tables.Item(1).AutoFormat(FormatNum,1,1,1,1,1,0,0,0,1);
@44Tabela
for y := 1 to GColCount
do Word.ActiveDocument.Tables.Item(1).Cell(1,y).Range.InsertAfter(dbgrid2.Columns[y-1].Title.Caption) ;
x :=1 ;
with dbgrid2.DataSource.DataSet do begin
First ;
while not Eof do begin
x := x + 1 ;
for y := 1 to GColCount
do Word.ActiveDocument.Tables.Item(1).Cell(x,y).Range.InsertAfter(FieldByName(dbgrid2.Columns[y-1].FieldName).Asstring);
Next ;
end;
end;
Word.ActiveDocument.Range.Tables.Item(1).UpdateAutoFormat ;
end; |
|
|