起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 997|回复: 0

如何使用计算字段的OnClacField的事件

[复制链接]
发表于 2004-4-6 17:01:01 | 显示全部楼层 |阅读模式
依据是否处理当前数据集中的字段分为两种情况:

1、处理当前数据集中的字段,参考代码如下:

Procedure TSJJYSWJGXXX.FIELD_dsData_JSZD1CalcField(Field: TBizField; var Value: Variant);
Var
  lValue: Integer;
begin
  if Field.ID = 'JSKYKC' then
  begin
    lValue := DataSetCSTJJSZD.FieldByName('KCSL').AsInteger –
      DataSetCSTJJSZD.FieldByName('ZKCL').AsInteger;
    Value := lValue;
  end;
end;

2、处理其它数据集中的字段,参考代码如下:

Procedure TSJJYSWJGXXX.FIELD_dsData_JSZD1CalcField(Field: TBizField; var Value: Variant);
var
  lValue: Integer;
  lQuery:TQuery;
begin
if Field.ID = 'TJKYKC' then
   begin
     lQuery:=TQuery.Create(nil);
   try
     // 给 Query 赋 ConnectionString
     lQuery.ConnectionString:='DATABASEURL=
       Biz:\ DEMO\DEMODATABASE.Database';
     // TJKYKC 是命名的一个别名,目的是便于访问
     lQuery.CommandText:='Select Sum(KCSL-ZKCL) as
       TJKYKC from SJJ_WZKCB';
     lQuery.Open;
     lValue:=lQuery.FieldByName('TJKYKC').AsInteger;
     Value := lValue;
   finally
     lQuery.Free;
   end;
   end;
end;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2024-12-23 00:11 , Processed in 0.041932 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表