报表的强制分页输出(急、急、急)
我现在有一个考勤记录表,里面存放着每个员工的考勤记录,我希望在输出
的报表中,将每个员工的考勤资料单独的放在一页纸上输出,请问我该如何做呢?
请各位高人指点.
注:请详细说明,并附原代码,谢谢!
问题点数: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




