delphi中dbgrid的修改问题 比如说我dbgrid中有三列:数量、单价、金额,请问dbgrid能否实现这样的功能,修改了数量或单价后金额自动计算,还有另一种情况:dbgrid中有客户编码、客户名称,这都来自客户档案,我修改了客户编码后,客户名称也自动刷新,不知道dbgrid能不能实现,如果能请提示一下,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 dbgrid连到数据集 对相应字段 写它的Change事件就可以了 例如下面的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中计算 下午查了些资料,关于计算的问题在adoquery的oncalcfields事件中好像就可以处理了,第二个问题还在研究中,大家多提宝贵意见,谢谢 我遇到的第二个问题比我上面说的复杂一些,bdgrid中有a、b、c三列,都来自另一档案,而且都是唯一的,如果改变a,则b、c也跟着改变,同样改变b或c,另两个也改变,这种情况lookup是不是就不大适合了? AssignFile()是個什么函數,做什么用的 external exception c0000008 这个错误见过吗? 急的我在线等! TShellListView组件问题 键盘几个键同时按住?? win7 + delphi2010 + png,结果图片周围出现黑色虚线(点) 在系统退出时 报ntdll.dll 错误 如何取到新打开网页的句柄?? 如何在程序中修改Access的密码!!(请帮帮忙)!! 如何判断一个文件是否存在? 这段代码哪里有问题呢? datetimepicker1.datetime:=now的怪问题! Delphi的数据模块不可用!
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;
大家多提宝贵意见,谢谢
如果改变a,则b、c也跟着改变,同样改变b或c,另两个也改变,这种情况lookup是不是就不大适合了?