折扣率=实收金额/应收金额
将主表的 “实收金额”/ “应收金额”的值自动填写到从表的“折扣率”字段中;
典型的主表值更改从表值,而且更改从表当前的多行记录。
具体实现:
脚本如下:
var
m:double;
begin
if (DataMdl_Tabledoc.fieldbyname('应收金额').isnull) or (DataMdl_Tabledoc.fieldbyname('应收金额').value=0) then exit;
m:=DataMdl_Tabledoc.fieldbyname('实收金额').value/DataMdl_Tabledoc.fieldbyname('应收金额').value;
DataMdl_DetailTableTADODataSet0.close;
DataMdl_ADOQueryTemp.Sql_text:='UPDATE 销售明细 SET 折扣率=' + floattostr(m) + ' WHERE 销售单号="' + DataMdl_Tabledoc.fieldbyname('销售单号').asstring +'"';
DataMdl_ADOQueryTemp.ExecSQL;
DataMdl_ADOQueryTemp.Sql_text:='SELECT * FROM 销售明细';
DataMdl_ADOQueryTemp.OPEN;
DataMdl_ADOQueryTemp.CLOSE;
DataMdl_DetailTableTADODataSet0.OPEN;
end.
脚本解析:
一、脚本可以在使用SQL的地方出现
二、脚本必须使用包围起来
三、脚本使用pascal语言
具体语句解释:
说明:上面的DataMdl_Tabledoc、DataMdl_DetailTableTADODataSet0、DataMdl_ADOQueryTemp都可以在编写代码时通过ctrl+O获得
代码编辑器会列出当前可用的对象