adoquery afteropne事件(15分)

  • 主题发起人 主题发起人 ntjrr
  • 开始时间 开始时间
N

ntjrr

Unregistered / Unconfirmed
GUEST, unregistred user!
adoquery 通常放于datamodule中,这样adoquery afteropne事件也得写在datamodule中,就要uses其它的窗口才好给该窗口中的EDIT等赋值了,这样好象比较麻烦,不知道大家是如何处理的。
 
你可以做一个类 然后赋值
 
能否举例一下呢?我所做的就是在当前窗口DBGRID下方显示DBGRID的记录条数,和其中一个字段金额的总计。我现在是这样做的:
要uses xmzl;
procedure Tdatamoduelform.xmzladoAfterOpen(DataSet: TDataSet);
begin
xmzlform.Label7.Caption:=inttostr(xmzlado.RecordCount);
ggado.Close;
ggado.SQL.Text:='select round(sum(je),2), from (' + xmzlado.SQL.Text + ')';
ggado.Open;
xmzlform.label3.Caption:=Format('%.2f',[ggado.Fields[0].AsFloat]);
end;
 
一般将DataSet 放在窗体中比较好,也容易编码,DATAMODULE一般放连接和公共的ADOQUERY.
如果你确实要这样做,你的办法也可以.还有一个办法是接ADOQUERY的事件在窗体中来.
如:
在窗体中声明一方法:
procedure myOpen(dataset : Tdataset) ;
在窗体.OnCreate事件中先接指针过来:
TADOQuery(DbGrid1.DataSource.DataSet).AfterOpen := MyOpen ;
这样在MyOpen事件就可以做了

xmzlform.Label7.Caption:=inttostr(DataSet.RecordCount);
DataSet.Close;
DataSet.SQL.Text:='select round(sum(je),2), from (' + DataSet.SQL.Text + ')';
DataSet.Open;
xmzlform.label3.Caption:=Format('%.2f',[DataSet.Fields[0].AsFloat]);
 
接受答案了.
 
后退
顶部