明细式报表
Visual Graph制作任何报表,都需要制作模板,明细式报表的模板是bin\report.tbl,下面我们在Delphi中使用它来制作雇员薪资表。
具体做法如下:
一、在Visual Graph中新建文件,并选菜单“文件/打印设置”把打印纸显示出来,然后选择菜单“工具/视图窗口属性”,点击“打印纸作为工作区”,把文件保存成“template1.tbl”。
二、绘制表头和表格明细如下图:
三、画完后,用鼠标选中明细表格,再选择菜单“编辑/单元组”,新建单元组group1,然后保存并关闭文件。
四、在Delphi中新建应用程序,并在窗口上放置Visual Graph ActiveX控件,设置Align为alClient,铺满窗口,再放Delphi的数据库控件Table1,设置Table1的Databasename属性为DBDemos,设置TableName属性为Employee.db
五、在Delphi的FormShow中写下列代码:
procedure TForm1.FormShow(Sender: TObject);
var
i : Integer;
sheet : ISheet;
begin
vgctrl1.Run( vgctrl1.DefaultPath + 'report.tbl' );
sheet := vgctrl1.vg.ActiveSheet;
sheet.SetPropertyValue( 'template', 'C:\Documents and Settings\Administrator\桌面\template1.tbl' );
Table1.Active = true;
while not Table1.Eof do
begin
sheet.Execute( 'Append()' );
sheet.Execute( 'SetFieldValue(0,"' + Table1.FieldByName( 'Empno' ).AsString + '")' );
sheet.Execute( 'SetFieldValue(1,"' + Table1.FieldByName( 'LastName' ).AsString + '")' );
sheet.Execute( 'SetFieldValue(2,"' + Table1.FieldByName( 'FirstName' ).AsString + '")' );
sheet.Execute( 'SetFieldValue(3,"' + Table1.FieldByName( 'Hiredate' ).AsString + '")' );
sheet.Execute( 'SetFieldValue(4,"' + Table1.FieldByName( 'Salary' ).AsString + '")' );
Table1.Next;
end;
sheet.Execute( 'Build()' );
end;
明细表Report.tbl中定义了三个函数,分别是Append追加一行,SetFieldValue设置最后一行某列内容,最后调用Build生成报表。
六、调试运行,得到下面的画面:
|