我把QRBand设定为rbDetail了后,为何只能根据重新数据库的记录数来打印行数,我想人工换行固定为5行,人工给dbtext赋值行不行?dbtext只能从数据库中读数啊?
解决方案 »
- 【求拯救】Delphi写的DLL,C++Builder调用,结果不正确,
- 第一次在CSDN上骂人,水源真是个垃圾地方
- update语句插入子查询出错
- 有关第三方控件的问题
- PageControl中多个TABSHEET如何提交数据
- 报这样的错:BOF 或 EOF 中有一个是“真”,或者当前的记录已被删除,所需的操作要求一个当前的记录。
- 如何实现自动关机~
- 小问题急死人~QR得问题
- 怎样实现Richedit自动翻滚?(跟聊天室中一样)
- 如何检测某个目录占用多少磁盘空间?
- XML 转换成 ClientDataSet 用xmlTransform转后发现数据没了??是不是BUG?有兴趣你也试试!
- 关于大量数据的查询
你只要修改value的值就可以了
procedure Tfrm_jjzbk_print.DetailBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
if xmxh<>exe.fieldbyname('xmxh').AsString then
begin
xmxh:=exe.fieldbyname('xmxh').AsString;
main_rep.NewPage; //强制换页
end
end;
Procedure Tprint_f.autochangerow(wide: integer;var value: string);
var
temparr:array of string;
widelen,i,j:integer;
s:widestring;
begin
j:=1;
s:=value;
widelen:=length(s);
setlength(temparr,j);
temparr[0]:='';
for i:=1 to widelen do
begin
if length(temparr[j-1])+length(s[i])>wide then
begin
j:=j+1;
setlength(temparr,j);
temparr[j-1]:=s[i];
end
else
begin
temparr[j-1]:=temparr[j-1]+s[i];
end;
end;
s:='';
for i:=0 to length(temparr)-2 do
s:=s+temparr[i]+chr(13);
value:=s+temparr[length(temparr)-1];
temparr:=nil;
end;
///要换行的quickreport中的lable或text
procedure Tprint_f.QRDB_opinionPrint(sender: TObject; var Value: String);
begin
self.autochangerow(200,value);
end;