关于打印空白表格线的问题(50分)

  • 主题发起人 主题发起人 jobsxy
  • 开始时间 开始时间
J

jobsxy

Unregistered / Unconfirmed
GUEST, unregistred user!
客户要求一张报表,如果数据没有填满整张表时,剩余部分用空白线表示,即只画出表线
我是这样做的:
var i:integer;
procedure TQuickReport1.QuickRepNeedData(Sender: TObject;
var MoreData: Boolean);
begin
if i <= 30 then
MoreData := True;
i := i + 1;
end;

procedure TQuickReport1.QuickRepBeforePrint(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
i := 0;
end;

但在预览时不起作用,请问该如何处理呢?
(注:不能往Table1里临时追加空记录)
 
这个问题,只能用插入空记录来解决。
因为,你绘制表格线,是通过设置QRDBTEXT的边框来实现的。但是,一旦数据记录没有要求那么多,
报表只自动生成数据记录个数的QRDBTEXT。
要达到你想要的功能,最简单办法为建立临时表,把查询结果导入到临时表,然后插入空记录进临时表。用完后,把临时表清除。
如果非不用临时表,自己绘制,将会涉及到非常麻烦的单元格绘制。你要单独绘制每一个QRLABLE,而不是QRDBTEXT。同时要注意每个QRLABLE
的高度,宽度,起始位置,换行等问题,而且要处理预览过程中,比例缩放问题。
你也可以考虑,换其他专门处理这种情况的其他报表工具。
 
fastreport很容易的。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部