首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

delphi中dbgrid的修改有关问题

2012-03-12 
delphi中dbgrid的修改问题比如说我dbgrid中有三列:数量、单价、金额,请问dbgrid能否实现这样的功能,修改了数

delphi中dbgrid的修改问题
比如说我dbgrid中有三列:数量、单价、金额,请问dbgrid能否实现这样的功能,修改了数量或单价后金额自动计算,还有另一种情况:dbgrid中有客户编码、客户名称,这都来自客户档案,我修改了客户编码后,客户名称也自动刷新,不知道dbgrid能不能实现,如果能请提示一下,谢谢

[解决办法]
例如下面的dbgrid连到数据集 当dbgrid中字段 DetailKJZMX_KJBH 改变时,WJXX_KJMC等等其他字段也自动改变

procedure TFrm_KM_DCWJ_KJZ.AdoQry_DetailKJZMX_KJBHChange(Sender: TField);
begin
inherited;
with TADOQuery.Create(Self) do
begin
Connection := Self.DBConnect;
try
SQL.Add('select * ');
SQL.Add('from WJXX ');
SQL.Add('where WJXX_KJBH=:pKJBH');
SQL.Add(' and isnull(WJXX_TYBZ,''N'')<>''Y'' ');
Parameters.ParamByName('pKJBH').Value := AdoQry_DetailKJZMX_KJBH.AsFloat;
Open;
if not IsEmpty then
begin
AdoQry_DetailWJXX_KJMC.AsString := FieldByName('WJXX_KJMC').AsString;
AdoQry_DetailWJXX_KJLX.AsString := FieldByName('WJXX_KJLX').AsString;
AdoQry_DetailWJXX_KJXX.AsString := FieldByName('WJXX_KJXX').AsString;
AdoQry_DetailWJXX_KJMJ.AsString := FieldByName('WJXX_KJMJ').AsString;
AdoQry_DetailWJXX_SXZD.AsString := FieldByName('WJXX_SXZD').AsString;
end;
finally
Close;
Free;
end;
end;
end;
[解决办法]
我回答另一个问题
dbgrid中有客户编码、客户名称,这都来自客户档案,我修改了客户编码后,客户名称也自动刷新,不知道dbgrid能不能实现

客户名称字段用Lookup类型就可以自动更改
[解决办法]
一.用计算字段
二.用query1.refresh;
[解决办法]
在adoquery组件的afteredit中计算
[解决办法]
数据集的事件多得是,你看要处理什么方面,一般的还没有不能完成的。

热点排行