CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

报表的强制分页输出(急、急、急)

楼主foxling(色即是空)2000-12-07 22:33:00 在 Delphi / VCL组件开发及应用 提问

我现在有一个考勤记录表,里面存放着每个员工的考勤记录,我希望在输出  
  的报表中,将每个员工的考勤资料单独的放在一页纸上输出,请问我该如何做呢?  
  请各位高人指点.  
  注:请详细说明,并附原代码,谢谢!  
  问题点数:50、回复次数:9Top

1 楼balaschen()回复于 2000-12-08 08:24:00 得分 14

如果用TPrinter对象直接打印,可以用Printer.NewDoc来强制换页。  
  uses   Printers;  
   
  begin  
            Printer.BeginDoc;  
            while   (你的循环条件)   do  
            begin  
                      {在这里用Canvas的方法进行打印输出}  
                      Printer.NewDoc;  
            end;  
            Printer.EndDoc;    
  end;Top

2 楼balaschen()回复于 2000-12-08 08:24:00 得分 0

如果用TPrinter对象直接打印,可以用Printer.NewDoc来强制换页。  
  uses   Printers;  
   
  begin  
            Printer.BeginDoc;  
            while   (你的循环条件)   do  
            begin  
                      {在这里用Canvas的方法进行打印输出}  
                      Printer.NewDoc;  
            end;  
            Printer.EndDoc;    
  end;Top

3 楼foxling(色即是空)回复于 2000-12-08 15:17:00 得分 0

对不起,我没有说清楚。我的报表是使用TQuickRep控件来输出的。打印也是在这里完成的。Top

4 楼mumu74()回复于 2000-12-08 16:13:00 得分 12

我估计不应该这么简单吧——把rbDetail BAND的高度设为纸张那么高就行了:-)Top

5 楼lxl(是我,不是风)回复于 2000-12-08 23:28:00 得分 12

只要把你要显示在下一页的BAND的FORCENEWPAGE设为TRUE就可以了。Top

6 楼iforever(iforever)回复于 2000-12-09 10:16:00 得分 12

mumu74讲得有道理你可以试试.  
  你好象应该做成主子查询格式的.  
  这只是一个思路我并没试验.Top

7 楼foxling(色即是空)回复于 2000-12-09 13:09:00 得分 0

我的考勤记录表中每个员工的记录有很多条。  
  例如:  
  王一   。。。  
  王一   。。。  
  王一   。。。  
  李林   。。。  
  李林   。。。  
  李林   。。。  
  李林   。。。  
  张三   。。。  
  张三   。。。  
  张三   。。。  
  将每一个员工的考勤资料单独的放在一页纸上输出,并要求在报表预览的时候可以看到,  
  请问我该如何做呢?我的报表是使用TQuickRep控件来输出的。  
  请各位高人指点.  
   
  Top

8 楼foxling(色即是空)回复于 2000-12-10 12:52:00 得分 0

经过高人指点,问题终于解决了,谢谢各位帮忙。  
  分数不多,大家平分吧。^_^  
   
  下面是解决问题的代码,在此与大家共享。  
   
  先声明一个变量  
  var  
      TempName   :   string;  
   
  调用报表预览  
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
  query1.Close;  
  query1.Open;  
  TempName   :=   query1.fieldbyname('name').AsString;  
  QuickRep1.Preview;  
  end;  
   
  调用DetailBand的BeforePrint方法  
  procedure   TForm1.DetailBand1BeforePrint(Sender:   TQRCustomBand;  
      var   PrintBand:   Boolean);  
  begin  
  if   Query1.FieldByName('Name').AsString   <>TempName   then  
      begin  
      quickrep1.NewColumn;  
      tempname   :=   query1.fieldbyname('name').Asstring;  
      end;  
  end;Top

9 楼skt642()回复于 2001-05-31 16:23:00 得分 0

31221关注!Top

相关问题

  • 水晶报表如何强制分页
  • 水晶报表中单据报表强制分页.
  • 我已将报表按组进行了强制分页,但如何用空记录充满最后一页
  • ActiveReport怎样强制分页
  • 水晶报表分页
  • 怎么做输出分页
  • 打印问题:强制分页
  • 水晶报表分页问题——如何按记录分页
  • 用Qreport设计报表怎么分页?
  • 关于交叉报表分页打印?

关键词

  • 报表
  • 打印
  • 员工
  • 输出
  • 强制
  • newdoc
  • printer
  • 考勤
  • tempname
  • fieldbyname

得分解答快速导航

  • 帖主:foxling
  • balaschen
  • mumu74
  • lxl
  • iforever

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo