1.我在adoq_gz上新加了一个工资额(gz_gze)字段
2.在adoq_gz的oncalcfields事件加了如下代码
procedure tf_gz.adoq_gzcalcfields(dataset:tdataset);
begin//以下所示为工资额=基本底薪/208*工作时数
adoq_gz.fieldbyname('gz_gze').value:=(adoq_gz.fieldbyname('gz_basegz').value)/ 208 * (adoq_gz.fieldbyname('workhours'))
end;
3.在f_gz的create事件中加入以下代码
adoq_gz.oncalefields:=adoq_gzcalcfields;
我在dbgrid中先输入基本底薪,再输入工作时数,按回车,就应该有工资额出来。可是什么反应都没有。请各位高手帮忙。
2.在adoq_gz的oncalcfields事件加了如下代码
procedure tf_gz.adoq_gzcalcfields(dataset:tdataset);
begin//以下所示为工资额=基本底薪/208*工作时数
adoq_gz.fieldbyname('gz_gze').value:=(adoq_gz.fieldbyname('gz_basegz').value)/ 208 * (adoq_gz.fieldbyname('workhours'))
end;
3.在f_gz的create事件中加入以下代码
adoq_gz.oncalefields:=adoq_gzcalcfields;
我在dbgrid中先输入基本底薪,再输入工作时数,按回车,就应该有工资额出来。可是什么反应都没有。请各位高手帮忙。
建议将所有的.value改成.asfloat试试
//try!!
建议不要用Value来搞这样会降低效率。
我觉得可能是你没有把这个字段显示出来或者显示错了,要么就是你的数据集感知控件没有正确的连接。
这时你的ADOQuery的所有字段都显示出来了
这是在添加new field
例如:实发字段
然后在ADOQuery1控件的onCalcFields事件中加入你的代码
使new的值满足你的要求/*代码*/
table也是一样