将数据从dbgrid输入到单词邮件合并中

cap*_*tiv 2 delphi outlook ms-word mailmerge

我想为每封输入不同名称和地址的信件创建邮件服务.我已经使用Microsoft示例作为基点http://support.microsoft.com/kb/229310,我已经根据自己的喜好对其进行了定制.但是当我试图获取dbgrid的选定行或整个事件的数据时,我的问题出现了.我不知道该怎么做.我的第一个想法是对行数量做1,然后放下一些tedit框并将它们等于mailmerged数据,但这仍然只是一次一个.dbgrid链接到ms outlook.这是他们填写数据的方式..

// Open the file to insert data
wrdDataDoc := wrdApp.Documents.Open('E:\Temp.doc');
 for iCount := 1 to (DBGrid1.DataSource.DataSet.RecordCount) do
wrdDataDoc.Tables.Item(1).Rows.Add;
FillRow(wrdDataDoc, 2, 'Steve', 'DeBroux',
    '4567 Main Street', 'Buffalo, NY  98052');
// Fill in the data
FillRow(wrdDataDoc, 3, 'Jan', 'Miksovsky',
    '1234 5th Street', 'Charlotte, NC  98765');
FillRow(wrdDataDoc, 4, 'Brian', 'Valentine',
    '12348 78th Street  Apt. 214', 'Lubbock, TX  25874');
Run Code Online (Sandbox Code Playgroud)

那么我如何从dbgrid中获取数据并用该信息填充文件?

Ser*_*yuz 5

var
  i: Integer;
  bm: TBookmark;
begin
  DBGrid1.DataSource.DataSet.DisableControls;
  try
    bm := DBGrid1.DataSource.DataSet.GetBookmark;
    try
      i := 0;
      DBGrid1.DataSource.DataSet.First;
      while not DBGrid1.DataSource.DataSet.Eof do begin
        Inc(i);
        FillRow(wrdDataDoc, i,
          DBGrid1.DataSource.DataSet.FieldByName('Name').AsString,
          DBGrid1.DataSource.DataSet.FieldByName('Address1').AsString,
          ..
          );
        DBGrid1.DataSource.DataSet.Next;
      end;
      if Assigned(bm) then
        DBGrid1.DataSource.DataSet.GotoBookmark(bm);
    finally
      DBGrid1.DataSource.DataSet.FreeBookmark(bm);
    end;
  finally
    DBGrid1.DataSource.DataSet.EnableControls;
  end;
end;
Run Code Online (Sandbox Code Playgroud)