要求:数组中的数据并不需要全打印,而是通过自定义的一个visible值去判断是否打印
代码:
repData := TReportData(m_arrData[i]); //自定义的数组类,用来存放数据;
MoreData :=( i <= High(m_arrData));
if MoreData then
begin
if repData.nVisiable=1 then begin // 打印visible是1的数据
qrlName.Caption := repData.strItem;
qrlRow.Caption := IntToStr(repData.nRow);
qrlMonth.Caption := FloatToStr(repData.dStart);
qrlYear.Caption := FloatToStr(repData.dEnd);
end;
end;
Inc(i);
----------------------//这样的打印结果:visible为0的没有打印,但它所在行打印出了上一条记录;重复了;
如果在开始加上这句:
if (repData.nVisiable=0) then
exit; // 打印会死循环;
------------------------------------------
如果在if后加下面的else:重复记录没有了,但那一行是空的;
end else begin
qrlName.Caption := '';
qrlRow.Caption := '';
qrlMonth.Caption := '';
qrlYear.Caption := '';
我觉得是不是在detailBand上设置什么,让它不显示,试了几个属性也不行 ,求大虾们帮助!
具体地就在DETAILBAND的ONNEEDDATA事件中填就可以了,QUICKREPORT自带的例子就有。