怎样能够让一条TQRDBText在20宽度内自动换行?地址之类的数据实在是太长了:(~
解决方案 »
- 关于函数datediff之类的问题
- TMediaplayer组件,代码怎么设置视频窗口总在其他窗口的前端?
- 如何让TreeView的每个节点保存一个字符串?
- Indy控件中FTP下载问题,急!!!
- 如何让程序中的一段代码在一天中指定的时刻执行一次
- 请问大家一般怎么实现报表打印功能!!!
- TADOdataset不能更新的问题!
- 再一个问题 oracle高手请进
- access数据库怎么改变用户名和密码?
- 在StringGrid中画图,我想在左键单击该图片时,显示一红色边框表示选中,右键单击清除该红色边框。。。
- StringGrid
- StringGrid问题:有一StringGrid,里面有很多行数据,我想在最上面插入一行,解决马上揭帖,决不食言!
办法一:
QRDBrichText只能显示备注字段,如果你可以将这个字段改为备注字段,在sql server中可以是Text类型。方法二:
在qrrichtext所在的band的beforeprint事件里写入如下代码
qrrichtext.lines.text:=table.fieldbyname('field').asstring;
将qrrichtext的autostretch设为true
就可以了
值得注意的是:预览的时候看不到,只有在程序运行的时候才可以看到!
autostretch := true;
autosize := false;
wordwrap := true;
然后在要折行的地方加上空格或者回车即可(在ONPRINT事件中操作);以下是获取中文折行字符串的函数
function GetHz0(s:string):string;
var hz:string;i:integer;
begin
hz:='';
for i:=1 to length(s) do
begin
if ByteType(s,i) <> mbLeadByte then //单字节\//双字节的第二个字节
begin
if trim(hz) = '' then
begin
hz := s[i]+ #13#10;
end
else
begin
if i = Length(s) then
begin
hz := hz + s[i];
end
else
begin
hz := hz + s[i]+ #13#10; // ' ';//
end;
end;
end
else //双字节的第一个字节
begin
if trim(hz) = '' then
begin
hz := s[i];
end
else
begin
hz := hz + s[i];
end;
end
end;
GetHz0:=hz;
end;