在Delphi中宏的使用(100分)

  • 主题发起人 主题发起人 biggj
  • 开始时间 开始时间
B

biggj

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在VB中写了以下代码

Select_rs.Open "select 单位,时间,病害名称,地点,详细情况,处理情况 from 突发病害 where 时间='" & VDate & "'", P_SbConn, adOpenKeyset, adLockOptimistic

If Select_rs.RecordCount > 1 Then
wddc.Tables(2).Rows(3).Select
wddc.ActiveWindow.Selection.InsertRowsBelow Select_rs.RecordCount - 1
End If

For i = 3 To Select_rs.RecordCount + 3
With wddc.Tables(2)
.Cell(i, 1).Range.Text = Select_rs.Fields("单位").Value
.Cell(i, 2).Range.Text = Select_rs.Fields("时间").Value
.Cell(i, 3).Range.Text = Select_rs.Fields("病害名称").Value
.Cell(i, 4).Range.Text = Select_rs.Fields("地点").Value
.Cell(i, 5).Range.Text = Select_rs.Fields("详细情况").Value
.Cell(i, 6).Range.Text = Select_rs.Fields("处理情况").Value
Select_rs.MoveNext
End With
Next i

在Word中做的表格就是表头加一行空表,在记录条数变多时,通过Word的宏自动复制添加空行.不知道在Delphi中该如何实现这一功能!
 
参考:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2447301
 
var
WordApplication1: TWordApplication;
WordDocument1: TWordDocument;

try
WordApplication1 := TWordApplication.Create(application);
WordDocument1 := TWordDocument.Create(Application);
WordApplication1.Connect;
WordApplication1.Visible := True;
except
Screen.cursor := crDefault; // 打开光标
MessageBox(GetactiveWindow(), 'word没有安装!', '提示', MB_OK +
mb_iconexclamation);
abort;
end;
//============表格第一行说明文字============
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.text:='select ....';
adoquery1.open;
if not adoquery1.isempty then
begin
with WordDocument1 do
begin
tables.Add(WordDocument1.Words.Last, adoquery1.Fields.Count + 1,
5); //自动加一个表格
Range.InsertParagraphAfter;
end;
end;
with WordDocument1.Tables.Item(1) do
begin
Cell(i, 1).Range.Set_Text(...);
Cell(i, 2).Range.Set_Text(...);
Cell(i, 3).Range.Set_Text(...);
Cell(i, 4).Range.Set_Text(...);
Cell(i, 5).Range.Set_Text(...);
Cell(i, 6).Range.Set_Text(...);
ADOQuery1.Next;
end;
 
后退
顶部