如何关掉query的计算字段的自动计算事件(50分)

  • 主题发起人 主题发起人 hamang
  • 开始时间 开始时间
H

hamang

Unregistered / Unconfirmed
GUEST, unregistred user!
如何关掉query的计算字段的自动计算事件
autocalcfields:=false仍然会触发onCalcfileds事件
我想屏蔽掉OnCalcFields事件中的代码!!请赐教,QQQ
 
采用技巧变通一下就行了:
在onCalcfileds中第一行:
if query1.tag=1 then exit;
这样子想关掉计算就设置tag为1,打开就设置为0。
 
把OnCalcFields事件指针设为空就可以了,需要的时候再挂上去。
例:
if I_want_CalcFields then
MyQuery1.OnCalcFields:=MyCalcFieldsEventProc
else
MyQuery1.OnCalcFields:=nil;
 
支持skyweb
甚至可以定义多个计算事件,然后挂需要挂的OnCalcFields事件
case I_want_CalcFields of
1: MyQuery1.OnCalcFields:=MyCalcFieldsEventProc1;
2: MyQuery1.OnCalcFields:=MyCalcFieldsEventProc2;
3: MyQuery1.OnCalcFields:=MyCalcFieldsEventProc3;
else
MyQuery1.OnCalcFields:=nil;
 
楼上三位的方法都很好,让我也学了两招
补充一点:必须要在query打开前做相应的处理:
对于zhanggeye的方法,要在打开前赋值:
if wanttocalc then query1.tag=1 else query1.tag=0
后两位的代码则必须要放在打开query1前
 
结束得这么快了
 
后退
顶部