可以通过frDBDataSet1.CheckEOF判断数据是否结束~~

解决方案 »

  1.   

    据说FastReport比QuickReport功能强,可是它的中文资料基本上从来没发现过,如果不是QR的BUG太多我也不会想到要用其他的控件,希望熟悉FR的帮个忙。我现在下到的版本是2.42/2.43,以前版本的文字不知到是哪个国家的,另外听说有关于FR的FAQ不知道在哪里可以找到?
      

  2.   

    再把我的问题具体化一下:程序中使用了Query控件,SQL语句是动态加入的,显示结果大致如下:________________________________________
    Field1  Field2  Field3  Field3...
    ...
    ...
    小计
    ...
    ...
    小计
    合计    ...
    __________________________________
    在QR中我用了onNeedData,在其中指定各Label显示字段,并且在程序中根据条件判断换页:如果Feild1的值为'小计'并且下一记录值不为'合计'则换页。上述程序在QR预览成功实现,但是因为实际打印中有问题(据说是QR的BUG),所以不得不用FastReport,只是对它还不熟悉,特此在此请教高手。别让我添加数据字段,然后在FR中分组打印,不想改数据,谢谢!
      

  3.   

    我对报表的看法是真接在Canvas上画,想怎样做就怎样做,任我发挥,自由自在。
      

  4.   

    在QuickReport中我是用GROUP BY实现你说的功能,你不妨也试试。
      

  5.   

    QuickReport中我要得到的报表已经可以实现了,只是实际打印时有问题,与打印预览的结果有差异(所见非所得),故不得以准备使用FastReport,还忘各位帮忙!
      

  6.   

    FastReport 是俄罗斯的产品,产要优点在于可能对生成的报表再修改,就如在word上一样,但是在其它方面如表达式方面就不如啦.
      

  7.   

    FastReport的2.4以后的版本功能还是非常强大的~~不过分组好像有一点Bug~~
      

  8.   

    fastreport实现并不难,只要做一个循环showband就可以了
    在onmanualbuild  写一些代码
    tform1.frReport1ManualBuild(Sender: TfrPage);
    var
      i, j: Integer;
    begin
      Sender.ShowBandByType(btReportTitle);
      for i := 0 to 3 do
      begin
        Sender.ShowBandByName('Band2');
        for j := 0 to 2 do
          Sender.ShowBandByName('Band3');
        if i <> 3 then
          Sender.NewPage;
      end;
    end;
      

  9.   

    TO:fenglin2000(风林2000)  不好意思,没有看明白,能否解释一下,谢谢!
      

  10.   

    不知道你是否用过FastReport,
    你自己先做一个最简单的打印
    数据表的程序看看吧!其实,我已经讲的很具体了,补充一点
    在程序设计时,在fastreport编辑器里
    加入两个band,分别为band2,band3
      

  11.   

    我对FR的最大意见就是:对Chart的支持太原始了:(
    其他的真的不错,我以为:)
      

  12.   

    TO:fenglin2000(风林2000) band2,band3里分别放什么?
     你着段程序来自它的Help,可是看不出与我的需求有多大关系,麻烦你仔细说说好吗?
     谢谢!
      

  13.   

    我觉得这个帮助例子就是告诉你如何打印自己定义报表数据
    你可以对masterband上的memo赋值。
      

  14.   

    请教专家终于搞定:Page.OnBeforePrint:
    begin
      s := '';
    endMasterData.OnBeforePrint:
    begin
      s1 := [Table1."Field11"];
      if s = '小计' then
        if s1 <> '合计' then
          NewPage;
      s := s1;
    end还是要谢谢大家的参与!