Qreport中对不想打印的记录如何跳过去?(112@telekbird.com.cn)(70分)

  • 主题发起人 主题发起人 jw
  • 开始时间 开始时间
呵呵,简单,在table.onfilterrecord里,把不要的记录过滤了就成
 
正本清源.
只能从数据源上下功夫,直接控制QR不太容易,就算能实现也不格算.
       ┓ ┓
     ┣     ┫
           
┣  Montain  ┫
  ┣           ┫ <---------- 1

highway <---------- 2
──────────────
A: 1 B:2 C: Back
 
还是用query来把不想打印的记录筛选掉吧:-)
 
if you want to control the DetailBand, the method like this:
//Example
Table:(DBDEMOS animals.dbf)
procedure TForm2.QRBand1BeforePrint(Sender: TQRCustomBand;
var PrintBand: Boolean);
begin
PrintBand:=Table1.FieldByName('Size').AsInteger>10;
end;


Otherwise, if you want one band or one label etc. use :
(Sender:Band,label,) .Enabled:=False;

 
agree with cytown
 
最好是用TQUERY部件,用TTABLE的过滤功能非常有限.
 
在QRband 的 beforeprint 事件中加入以下代码
if 不打印条件 then

begin
QRband1.enabled:=false;
//设置不打印的内容,
Qrlabe1.enabled:=false;
.
.
end
else
begin
qrband1.enabled:=ture;
//恢复打印。
QRlabel1.enabled:=true;
.
.
end;

 
同意蓝精灵的意见
 
除使用TQUERY外,加上REPORT中的自定义数据源的控件就足够了
 
在QRband 的 beforeprint 事件中加入以下代码
if 不打印条件 then

begin
QRband1.enabled:=false;
//设置不打印的内容,
Qrlabe1.enabled:=false;
.
.
end
else
begin
qrband1.enabled:=ture;
//恢复打印。
QRlabel1.enabled:=true;
.
.
end;

我就是用这个方法把qrband的chilband。enabled:=false,
但一直同错。
不知为什么???
 
同意BlueGenie
 
不能:
{在QRband 的 beforeprint 事件中加入以下代码
QRband1.enabled:=false;
//设置不打印的内容,}
否则以后的记录都打不了
可在afterprint中检查将要打印的记录,如不需要打印,则
query1.next
or tabel1.net
 
在detailband中beforeprint事件中去做工作!
 
如果对应的是Table,则用Table.Filter,如果对应的是Query,则使用SQL语句过滤即可。
 
多人接受答案了。
 
后退
顶部