能打印多少数据?我要改得要吐血了。(150分)

  • 主题发起人 主题发起人 liuyang
  • 开始时间 开始时间
L

liuyang

Unregistered / Unconfirmed
GUEST, unregistred user!
是这样的。有一个统计报表
我用quickreport做的。
我在里面根据需要放了近1000个QRLABLE。每一个都是用来存统计来的数据。
是这样写的:
procedure Tjtbsc.BitBtn1Click(Sender: TObject);
begin

if (radiobutton1.Checked = true) then
//申诉案件处理情况月报表的生成
begin

label1.visible:=true;
label1.Caption:='正在生成报表......';
progressbar1.Visible:=true;

//第一行

query1.Close;
query1.SQL.clear;
query1.SQL.Text:='select count(*) from ass_ajqk_v a1, ass_cljg_v a3 where (a1.xh=a3.xh) and (a3.zwqx="转其他机关") and (a1.lyfs="集体上访")';
query1.Open;
jt01.QRLabel634.Caption:=query1.FieldByName('count(*)').AsString;



progressbar1.StepIt;


//每执行五条SQL语句 进度条加一格
progressbar1.Position:=0;
progressbar1.Visible:=false;
label1.Caption:='';
jt01.QR1.Preview;
exit;
end;


结果最多只能写入400多个qrlabel。再写入上述语句的时候,就会出错了。
提示 access violation at address 02932f4c in module
'我生成的ocx名.ocx' read of address 02932f4c

我估计这样做效率是不太高。可能是内存不够的原因。可在128兆下运行还是有
这样的毛病。
注:如果在400以下的qrlabel就没事。多了就不行了。

各位知道怎么解决吗?急死我了。。。谢谢
 
哇,你真是辛苦,1000个QRLABLE?
我还没用过超过100个,怎么比?
 
不能使用 Detail Band 吗?那样可以减少很多的Qrlabel。建议先把查询结果存到临时表
中,再将临时表作为 Quickrep 的数据源,就可以使用 Detail band 了。
 
应该不是QRLABEL的原因,你是不是应该看一下进度条和OCX控件是否有问题,从错误上看是访问了非法的
内存地址。
 
多人接受答案了。
 
后退
顶部