QReport,一页打印多个标签,有些QRDBText的长度超过了网格线,如何实现自动调小字体? ( 积分: 50 )

  • 主题发起人 主题发起人 小師妹
  • 开始时间 开始时间

小師妹

Unregistered / Unconfirmed
GUEST, unregistred user!
QR好像不可以的,你换个报表控件吧
 
啊?可是我的报表已经设计完成了,就这个小问题没弄好呀!
谁来帮帮我?
 
需要打印的标签有5000左右,长度超标的字段比较少,估计100个左右。有没有什么办法呀?
 
我都係建议你换一个报表工具,再做过
QR的功能实在太有限啦,开发报表太花时间了
换成FASTREPORT吧
 
只是一个小程序...总共也就这么一两个报表而已呀.
fastReport我也不会用。。。。得现学。。。
真的没办法么?
 
着急啊。。。
 
procedure TForm1.DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
while qrdbtext1.width>30do
// 数字30为Qrdbtext1的最大宽度
qrdbtext1.Font.Size:=qrdbtext1.Font.Size-1;
end;
 
a-ming,不行啊...
我想其他办法:1.处理dataset,把一个长字段变为两个短字段。用两行两个QrDBtext显示。
2。改用fr. fr支持超长字段自动换行。
 
其实是我的失误。弄了个很短的字段来测试,length()不够大,所以,QrDBText的字体值没有变化。以至测试不出来效果。以下为解决问题的代码。
--------
procedure TfPrtLable.aBeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
if length(QyPrint.FieldByName('fatModel').AsString) > 16 then
QRDBText2.Font.Size := 8 ;//10-->8
end;

procedure TfPrtLable.aAfterPrint(Sender: TQRCustomBand;
BandPrinted: Boolean);
begin
QRDBText2.Font.Size := 10 ;
//8-->10
end;
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部