1、怎样使用自定义函数?在frReport1的事件OnUserFunction中写入以下代码:if AnsiCompareText('SumToStr',Name) = 0 then
   val := NumToUpper(frParser.Calc(p1));(NumToUpper为数字转大写函数,它的参数是数值型。)然后在报表中这样调用(放在page footer):[SumToStr([SUM([ADOTable1."gz"])])]运行程序时却提示:“无效的变量转换”,这是为什么?2、怎样实现逐页累计?Page1编号   姓名    工资
 1     qw     120.00
 2     er     210.00
 3     ty     340.00
 4     yu     180.00本页人数:4人        累计人数:4人
本页工资合计:850元  工资累计:850元
Page2编号   姓名    工资
 5     as     100.00
 6     df     260.00
 7     gh     370.00
 8     jk     160.00本页人数:4人        累计人数:8人
本页工资合计:890元  工资累计:1740元3、在报表的最后一页如果记录很少,Page Footer会在页面的底部打印,怎样使它紧靠着报表尾打印,而不让它在页面的底部打印?

解决方案 »

  1.   

    1,的用法对啊,看看是不是你的参数类型有问题3,可以放到master footer上啊
      

  2.   

    上面说的对,放要在master footer上
    你在试试
      

  3.   

    我关心第二个问题,怎么没人回答啊,Delphi里没有做报表的高手了吗?
      

  4.   

    这些问题其实论坛里有的是,查查就有了,为什么不自己查查哪,嘿http://search.csdn.net/Expert/topic/1802/1802306.xml?temp=5.668277E-02
    http://search.csdn.net/Expert/topic/1296/1296023.xml?temp=.4489099/////////////////
    本页合计,本页累计,例如你要统计字段gz
    1.在FAST REPORT上添加变量sum_sheet_gz(本页合计变量),sum_gz(本页累计变量),var(过程变量)
    2.初始化变量,在PageHeader1的OnBeforePrint添加代码
    begin
       sum_sheet_gz:=0
         if [PAGE#]=1 then
        sum_gz:=0
    end
    2.统计变量,在MasterData1的OnBeforePrint添加代码
    begin
    var:=sum_sheet_gz;
    sum_sheet_gz:=字段gz+var;
    var:=sum_gz;
    sum_gz:=字段gz+var;
    end
    3.PageFooter1加入两个Memo分别设置sum_sheet_gz(本页合计变量),sum_gz(本页累计变量)
      

  5.   

    TO Juckfapan:   你说的方法有问题,我用了你说的代码,发现你的本页合计,本页累计都把下一页的第一条记录的值加进去了,不准确,只有最后一页的总合计数正确。
      

  6.   

    TO Juckfapan:
        关于第3个问题:在最后一页,我即要page footer上的本页合计,还要总合计.
    如你所说,放到master footer上只有总合计,而没有本页合计.
      

  7.   

    呵,不好意思,这是我从查到的贴子转的,上面不是有链接吗我刚看了一下,确实有问题,是第一页的合计把第二页的第一条记录加上了,而后面的页合计是正确的(但导致累计总少一条),直到最后一页的页合计少一条记录值,原因我也不是太清楚,但可以这样来实现:  每页合计:直接在page footer上用[SUM(v1)]//v1为“字段gz”值 1.在FAST REPORT上添加变量sum_hj(本页合计变量),sum_lj(本页累计变量
    2.初始化变量,在PageHeader1的OnBeforePrint添加代码
    begin
       if [PAGE#]=1 then
         sum_lj:=0;
    end
    3.在PageFooter1的OnBeforePrint添加代码
    begin
      sum_hj:=sum(v1);
      sum_lj:=sum_hj+sum_lj;
    end
    4.PageFooter1加入两个Memo分别设置sum_hj(本页合计变量),sum_lj(本页累计变量)
      

  8.   

    关于第3个问题,最后一页如果记录很少,可以填上空表啊,这样现实起来简单,呵放一子数据带(child band),在上面画空的表格(和主数据带一样,只是没有字段)
    在 master footer 的OnBeforePrint添加代码
    begin
      while freespace>=32 do  //32为数据带的高度
      begni
        showband(childband1);  //childband1--子数据带
      end;
    end
      

  9.   

    我已给JuckFaPan(好好念书!-知道啦)50分,怎么不显示呢?
    给分的时候,论坛提示“错误”,希望不会影响给分!