回 帖 发 新 帖 刷新版面

主题:关于表中计算字段如何写的问题

我在DataModule中设定了针对表A的计算字段
CalA1、CalA2、CalA3

其中CalA1由A表中字段“1”“2”“3”计算得出,
CalA2和CalA3分别为CalA1与A表中另外的字段“4”“5”计算得出,

作为结果我需要A表存储这三个计算字段的值,分别存在字段“6”“7”“8”

在数据录入界面里,要求输入“1”“2”“3”“4”“5”的值后在“6”“7”“8”中自动出现计算结果,
我分别试用了一下语句
dbedit4.text:='CalA1';
dbedit14.text:=datamodule2.A.fieldbyname('CalA1').asstring;

没有反应,写入后库中字段为空,录入时屏幕相应也没有数据计算出来

哪位大大能帮忙看看?指点一二
万分感谢
 

回复列表 (共2个回复)

沙发

计算字段必须在DataSet的OnCalcFields事件中赋值

板凳

谢谢楼上,这个逻辑我知道的,我想知道代码如何写?
之前我写在DataModule form里,用:
procedure TDataModule2.midCalcFields1(DataSet: TDataSet);
begin
 dataset['6']:=dataset['1']+dataset['2)']+dataset['3']; //合计
end;
procedure TDataModule2.midCalcFields2(DataSet: TDataSet);
begin
 dataset['7']:=dataset['6']*dataset['4’]; 
end;
procedure TDataModule2.midCalcFields(DataSet: TDataSet);
begin
 dataset['8']:=dataset['6']+dataset['5']; 
end;

编译通过了,但是在程序中没有反应。
有新招吗?请指教!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册