怎样在Quickrep组控里设置字段的字间距?此题给200分。 (100分)

  • 主题发起人 主题发起人 den yin chang
  • 开始时间 开始时间
D

den yin chang

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用Quickrep组件设计报表,在qrdbtext控件里显示数据库字段,由于打印的需要,显
示数据时,数据间要有一定的距离。例如,显示字段姓名,那么每个名字间都要有
一定的距离,请问用什么办法可以解决此问题?或另有其它办法可解答?
 
可以在设计时画好。
 
不是很明白,可否写具体些?
 
当然是在设计时把位置放好了,在运行的时候控制那不累死了
不过是用qrband显示字段的吗?不是吧
 
是在qrband里用qrdbtext显示字段,但qrdbtext的属性没有设置字段的字间距,我想了很
久都找不到方法,请给予帮助,多谢!
 
各位DELPHI高手,我的问题真的很难?请给予帮助,多谢!
 
在你放置TQRDBText的时候就已经定义了各个字段之间的距离
想定义字距,是否可以在数据库里改变数据字距。
 
chengli:您好!很开心得到你的解答。不过,此数据库里的数据已定好没有字间距,不能改
变,而是打印时必须要设字间距,问题的难处就在这里。
 
编写程序代码在qrdbtext的onprint事件,处理value字符串(判断是否是汉字用bytetype函数)。
 
pine_ant:您好!我也很赞同你的方法,可否写出程序代码给予一试?多谢!
 
问题还是没看明白,我想不是太难,请在描述清楚点好吗?
 
简单的说,就是打印报表时,能否把数据库里的数据按一定间距打印在报表上,但数据库里
的数据是没有设定字间距的。
 
QRDBText2.Left:=QRDBText1.Left+QRDBText1.Width+N;
//N为间距,通过实验确定
Left和Width属性可是很有用的哟。
我用的是Band,下面这段代码实现了指定字段间距以及打印的居中。
with QuickRep1.Bandsdo
begin
for i:=1 to ColumnHeaderBand.ControlCount-1do
begin
//PrintSpace为间距
ColumnHeaderBand.Controls.Left:=PrintSpace+ColumnHeaderBand.Controls[i-1].Left+ColumnHeaderBand.Controls[i-1].Width;
DetailBand.Controls.Left:=ColumnHeaderBand.Controls.Left;
end;
i:=ColumnHeaderBand.ControlCount-1;
n:=ColumnHeaderBand.Controls.Width;
Inc(n,ColumnHeaderBand.Controls.Left);
end;
if w>n+12 then
//w为页面的宽度(像素),n为打印字段占用的宽度
n:=(w-n-6) div 2
else
n:=0;
if n>2 then
begin
//整体右移以居中
for i:=0 to QuickRep1.Bands.ColumnHeaderBand.ControlCount-1do
begin
with QuickRep1.Bands.ColumnHeaderBand.Controlsdo
Left:=Left+n;
with QuickRep1.Bands.DetailBand.Controlsdo
Left:=Left+n;
end;
end;
 
看来只有pine_ant理解了提问者的意思,呵呵
 
多人接受答案了。
 
后退
顶部