您的位置:程序门 -> delphi -> vcl组件开发及应用



ac report中式报表里的子报表问,请大家帮帮小弟


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


ac report中式报表里的子报表问,请大家帮帮小弟
发表于:2007-08-14 11:53:21 楼主
为什么我在ac   report中式报表里,添加了子报表,但是在预览时看不到子报表的内容。请大家帮帮忙。还有问问高手们有没有ac   report中式报表的帮助文档和下载路径;谢谢。
发表于: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;


快速检索

最新资讯
热门点击