| 发表于:2007-08-14 16:13:221楼 得分:0 |
一.使用方法. 安装后,你可以在delphi控件面板上看到acreport这个控件。它提供了以下两个重要的属性: 1. datasets :设置报表用到的所有数据集。当最终用户选取字段时,这里设置的数据集与字段都会呈现出来。用以下方法可以动态设置或加入一个数据集: areport.datasets.setdataset(名称,数据集),如:areport.datasets.setdataset(\'主表\', query1) 2.variants :设置变量名。你可以把一些信息如:公司名称、日期、报表的条件信息等以变量的方式传入报表,以便用户使用。你可以在 beforeprepare事件中执行如下的语句来生成一个变量或给变量赋值: areport.variants.setvariant(\'使用单位名称\', edit2.text); areport.variants.setvariant(\'开始时间\', date()); 注册全局变量 一般用户的公司名称、地址、电话等可以注册成全局变量(系统变量),这样每个报表都可以使用。 方法: 包含 ac_var 单元,然后调用全局对象acsysvariants的setvariant方法,如: uses ac_var; ... acsysvariants.setvariant(\'公司名称\', \'xxxx有限公司\'); 3.几个重要的方法: loadfromfile 从文件中装入一个报表 loadfromstream 从流中装入一个报表 loadfromblobfield 从数据库中装入一个报表 savetofile 保存到文件 savetostream 保存到流 savetoblobfield 保存到blob类型的字段中 (注:loadfromstream 与 savetostream 中参数的类型是tacstream,它继承于tstream。) showdesigner 设计报表 print 打印 preview 预览 printprepared 打印已经准备好的报表(如果你自己控制准备报表可以使用这个) preparereport 准备报表 printwithset 在打印前弹出打印设置的对话框 //预览 acreport1.showdesigner; //设计报表 adodataset1.insert; //保存到数据表里 adodataset1.fieldbyname('file_name').asstring:=str; //将报表文件名保存到表中 adodataset1.fieldbyname('form_name').asstring:=form_name; acreport1.savetoblobfield(adodataset1mode_name); //保存文件的字段名称 acreport1.loadfromblobfield(adodataset1mode_name); //准备报表 acreport1.printwithset; //打印前弹出设置对话框架 acreport1.print; 导入报表: if opendialog1.EXECute then begin acreport1.loadfromfile(opendialog1.filename); adodataset1.insert; adodataset1.fieldbyname('file_name').asstring:=extractfilename(opendialog1.filename); //取得文件名 adodataset1.fieldbyname('form_name').asstring:=form_name; acreport1.savetoblobfield(adodataset1mode_name); adodataset1.post; end; 导出报表: if savedialog1.EXECute then begin acreport1.loadfromblobfield(adodataset1mode_name); acreport1.savetofile(savedialog1.filename); showmessage('导出成功!'); end; | | |
|