用FastReport想实现连续打印多张报表的可以实现吗?如表1,表2,表3,用户点击一下打印,不要预览就全部都打印出来。其中表1,表2,表3有可能是共有一个存储过程,有可能是各自调用不同存储过程

解决方案 »

  1.   

    1、动态生成报表,写代码完成报表。
    2、使用 TfrCompositeReport  控件, fastreport 自带的demo里边有使用方法
      

  2.   

    能说的更详细一些吗?急着解决这个问题,具体在哪个Demo里有呢我怎么找不到啊,我用的是FS2.53版本的,如果要升级到3.0也是可以的
      

  3.   

    如果你是设计器就设计好的,先让3个frxReport联好你的数据集,让后可以这样写:
    begin
      frxReport1.Print;
      frxReport2.Print;
      frxReport3.Print;
    end
    如果是动态的,在处理完你的数据后也按上写就ok了
      

  4.   

    并且你的方法的弹出打印机设置的对话框啊,我把frxReport里的PrintOptions下面的ShowDialog设为Flase了还是会弹出对话框。而且我刚试了,不会打印出来哦
      

  5.   

    frReport1.PrepareReport;
                  //frReport1.ShowPreparedReport  //预览
                  frReport1.PrintPreparedReport('',1,True,frAll);  //直接打印
      

  6.   

    枫叶的方法可以了,非常感谢!一定给分!
    还有个问题,我想用FS3.0做成可以导出到Word里的,用一个个FR3文件的话就要一个个的导出到Word里,做成一个FR3文件里面分若干个页的话应该就可以解决这个问题。目前是这些报表都是调用同一个存储过程,只是传进去的参数值不一样而已,有没有什么方法好操作
      

  7.   

    而且还要提供给用户导出到Word的功能
      

  8.   

    是啊,3.0的有这个功能,但现在在把50份的报表放在一个FR3文件里面分好多页显示。如果控制哪几页不要显示呢。还有我刚才自己试了一下2份的可以实现,但要对应的用到2个TADOStoredProc,那如果是50份报表不是要用50个TADOStoredProc。因为我的调用的存储过程都是同一个,只是参数不一样,有没有什么方便的方法?
      

  9.   

    不是太清楚你的意思!
    不过你的报表还是见意你分开保存!
    这样打印起来也比较方便,设置各方面也方便!按你的意思,应该可以这样做,你试一下:
    if CheckBox1.Checked then
      frReport1.Pages.Pages[0].Visible := True  //打印
    else  frReport1.Pages.Pages[0].Visible := False;  //此页不打印if CheckBox2.Checked then
      frReport1.Pages.Pages[1].Visible := True  //打印
    else  frReport1.Pages.Pages[1].Visible := False;  //此页不打印if CheckBox3.Checked then
      frReport1.Pages.Pages[2].Visible := True  //打印
    else  frReport1.Pages.Pages[2].Visible := False;  //此页不打印
    frReport1.PrepareReport;
    frReport1.PrintPreparedReport('',1,True,frAll);  //直接打印这样可以实现一次打印多页,而且可以实现不需要打印的不打印!