怎么实现编辑状态下两个数据集之间的赋值。请帮忙
如何实现编辑状态下两个数据集之间的赋值。请帮忙!
比如:
主次表结构的:主表与次表都是编辑状态,主表一条记录,用edit.text显示的,
次表由DBGrid显示,现在我想实现“在DBGrid中输完多条记录以后,离开DBGrid焦点后,把其中一项的值汇总赋值到主表的某一个字段。”请问如何实现?
例子
单号:394885 项目名称:辣食品
总金额: 160(这里就是要用下面DBGrid中一个字段的汇总赋值过来的)
下面是子表DBGrid当中显示的:
鸭子 2只 20元
鹅 3只 60元
鸡 1只 80元
上面主表的“总金额”就是所要赋值的。一离开焦点就要赋值过去。
谢谢!
------解决方案--------------------
TForm1.onDBGrid1exit(...);
var
StrSql:string;
begin
AdoQuery1.close;
StrSql := 'Select sum( '金额 ') from 次表 ';
AdoQuery1.Sql.Text := StrSql;
Adoquery1.open;
Edit1.Text := FloatToStr(AdoQuery1.FieldbyName( '金额 ').asFloat);
StrSql := 'Update 主表 Set 金额 = ' + FloatToStr(AdoQuery1.FieldbyName( '金额 ').asFloat);
ADOConnect1.Execute(StrSql);
end;
比如:
主次表结构的:主表与次表都是编辑状态,主表一条记录,用edit.text显示的,
次表由DBGrid显示,现在我想实现“在DBGrid中输完多条记录以后,离开DBGrid焦点后,把其中一项的值汇总赋值到主表的某一个字段。”请问如何实现?
例子
单号:394885 项目名称:辣食品
总金额: 160(这里就是要用下面DBGrid中一个字段的汇总赋值过来的)
下面是子表DBGrid当中显示的:
鸭子 2只 20元
鹅 3只 60元
鸡 1只 80元
上面主表的“总金额”就是所要赋值的。一离开焦点就要赋值过去。
谢谢!
------解决方案--------------------
TForm1.onDBGrid1exit(...);
var
StrSql:string;
begin
AdoQuery1.close;
StrSql := 'Select sum( '金额 ') from 次表 ';
AdoQuery1.Sql.Text := StrSql;
Adoquery1.open;
Edit1.Text := FloatToStr(AdoQuery1.FieldbyName( '金额 ').asFloat);
StrSql := 'Update 主表 Set 金额 = ' + FloatToStr(AdoQuery1.FieldbyName( '金额 ').asFloat);
ADOConnect1.Execute(StrSql);
end;