简洁实用,快捷灵活
软件有时存在这种情况,这里有三个字段“上次结余 本次充装 本次结余”。如图
我想修改同一个编号的中间某条记录中的数据,单击保存后自动修改下面的数据。通过脚本就可以实现这个功能,脚本如下:
第一:保存后:

脚本如下:
var
m:double;
n:double;
i:integer; // 定义变量 m、 n、 i
begin
m:=DataMdl_Tabledoc.fieldbyname('上次结余数量m3').value; //将当前记录上次结余数量赋值给变量M
n:=DataMdl_Tabledoc.fieldbyname('上次结余金额(元)').value; //将当前记录上次结余数量赋值给变量n
DataMdl_ADOQueryTemp.Sql_text:= 'select * from 充装信息 where ID > ' + DataMdl_Tabledoc.fieldbyname('ID').asstring + ' AND 编号='''+ DataMdl_Tabledoc.fieldbyname('编号').asstring +''''+'order by ID';
DataMdl_ADOQueryTemp.open;
while not DataMdl_ADOQueryTemp.eof do
begin
DataMdl_ADOQueryTemp.edit;
DataMdl_ADOQueryTemp.fieldbyname('上次结余数量m3').value := m;
DataMdl_ADOQueryTemp.fieldbyname('上次结余金额(元)').value := n;
DataMdl_ADOQueryTemp.fieldbyname('本次结存数量m3').value:= DataMdl_ADOQueryTemp.fieldbyname('上次结余数量m3').value - DataMdl_ADOQueryTemp.fieldbyname('本次充装数量m3').value;
DataMdl_ADOQueryTemp.fieldbyname('本次结存金额(元)').value:= DataMdl_ADOQueryTemp.fieldbyname('上次结余金额(元)').value - DataMdl_ADOQueryTemp.fieldbyname('本次充装金额(元)').value;
DataMdl_ADOQueryTemp.post;
m:=DataMdl_ADOQueryTemp.fieldbyname('本次结存数量m3').value;
n:=DataMdl_ADOQueryTemp.fieldbyname('本次结存金额(元)').value;
DataMdl_ADOQueryTemp.next ;
end;
DataMdl_ADOQueryTemp.close;
DataMdl_ADOQueryTemp.Sql_text:='SELECT * FROM 充装信息';
DataMdl_ADOQueryTemp.OPEN;
DataMdl_ADOQueryTemp.CLOSE;
END.
上一篇:利用按扭脚本实现“删除录入密码”
下一篇:联合Rich文本的使用