一段分行打印的小代码,可是我不明白(30分)

  • 主题发起人 主题发起人 ggmmjj
  • 开始时间 开始时间
G

ggmmjj

Unregistered / Unconfirmed
GUEST, unregistred user!
table1.first;
while not table1.eofdo
begin
if Length(field1.value)>20 then
//就是这行的field1.value是什么意思?
begin
QRText.WordWarp:=True;
QRText.Height:=40;
end;
table1.next;
end;
在以上的代码中,field1具体是指什么?????请指教!!
 
field1.value是指table1的第一个字段的值如同table1.fields[0].value.
而length(field1.value)是取这个字段值的长度,根据长度来控制打印控件:qrtext的外形.

————给点分吧,我快饿死啦————
 
啊,哈哈哈,我肯定会给你分啦,这个你就放心啦,我这人有一点特好,特讲信用:")[:D][8D][:D]
 
table1.fields[5].value.这写不对?????
 
ADOTable1.First;
while not ADOTable1.Eofdo
begin
if Length(ADOTable1.Fields[5].Value)>10 then
begin
QRDBText6.WordWrap:=True;
QRDBText6.Height:=40;
end;
ADOTable1.next;
end;
以上的程序为什么我只能打印最后一行???
 
showmessage(inttostr(length(print_gw.ADOTable1.Fields[5].Value)));都得出每条记录的长度为80,可实际上有些记录长度就有2,3个字符的。怎么回事?我要怎样才能实现分行的打印?
 
谁能帮我解释这个分行打印的问题,我再加分给他!!!!
 
不要用LENGTH 你用 print.font.width 可以得到长度的,我就是这么作的,我现在做的一个
打印,除了没有预览,其他的很好用,分行打印就是这样了,你还可以的到高度
 
下面的代码是打开前用来设定的:
if Length(field1.value)>20 then
//就是这行的field1.value是什么意思?
begin
QRText.WordWarp:=True;
QRText.Height:=40;
end
如果字段的长度超过20个字符,将报表上的QRText的高度设为 40,并自动进行
字回绕。
 
TO 喜玛拉雅:
能不能简单的写几写代码,就用我上面的代码来修改!!呵呵…谢谢您了…
 
……并自动进行字回绕。???字回绕是指什么????
 
字回绕是指如果字段的长度超过QRtext.width时自动分行处理
QRText.WordWarp:=True;
QRText.Height:=40;
分行打印??,好象在QReport中不用编写代码,而用QRBand和QRchildBand可以搞定。
把你的代码完整的贴出来。
 
procedure TPrint_gw.FormCreate(Sender: TObject);
begin
//分行打印判断
print_gw.ADOTable1.First;
while not Print_gw.ADOTable1.Eofdo
begin
if Length(print_gw.ADOTable1.Fields[5].Value)>10 then
begin
//showmessage(adotable1.Fields[0].Value);
//showmessage(inttostr(length(print_gw.ADOTable1.Fields[5].Value)));
print_gw.QRDBText6.WordWrap:=True;
print_gw.QRDBText6.Height:=40;
end;
print_gw.ADOTable1.next;
end;
showmessage('到尾');
end;
以上就是分行打印的全部代码!!我想要实现的功能是,当某一字段的内容超过10个字符后就让它跳到下一行接着继续…
 
怎么了???????
!………………………………
 
>>我想要实现的功能是,当某一字段的内容超过10个字符后就让它跳到下一行接着继续…
这样可以的:
在这个里面 QRDBText1Print(sender: TObject;
var Value: String);
写上类似于:
Var s :wideString ;
begin
s :=Value ;
if length(s)>10 then
s :=copy(s,1,10) +#13 + copy(s,10,length(s)-10) ;
...............
Value :=s ;
还有band 的高度也要适当增加。。
End ;
 
请问,band的高度怎么增加????
 
band.height := *** ;
呀。
不过看你折了多少行了!
 
band.height?????这样!band是什么西西??不行!!!!
 
你都说得不清不楚的:")还好,我想应该是DetailBand1.Height吧!!!
 
呵呵,是的。
 
后退
顶部