delphi 中的DBGRID列之间自动计算如何写程序
各位高手帮帮忙啊急需我在delphi7中使用dbgrid时dbgrid有三列前两列分别是dj,sl这两列的数据从sql数据库提取出来当我在第三列je列按回车时计算并显示当...
各位高手帮帮忙啊 急需我在delphi 7 中使用dbgrid时 dbgrid有三列 前两列分别是dj,sl 这两列的数据从sql数据库提取出来 当我在第三列je列按回车时计算并显示当前行前两的计算数据 不做保存只是显示到dbgrid中 公式 je=dj*sl 谢谢了
展开
2个回答
推荐于2018-03-23
展开全部
双击DBGrid的关联数据集控件比如ADOQuery ,然后右击点【New Field...】来增加新的计算字段。记得把FieldType 设置为Calculated 。然后在ADOQuery的OnCalcFields事件里写代码:ADOQuery.FieldByName('HJ').AsFloat:= ADOQuery.FieldByName('dj').AsFloat * ADOQuery.FieldByName('sj').AsInteger 。
2013-07-07
展开全部
var
s1, s2:string;
begin
if key=#13 then
begin
if(DBGridEh1.SelectedField.FieldName='dj')or(DBGridEh1.SelectedField.FieldName='sl')then
begin
try
strziduan1:=DBGridEh1.DataSource.DataSet.FieldValues['dj'];
strziduan2:=DBGridEh1.DataSource.DataSet.FieldValues['sl'];
DBGridEh41.DataSource.DataSet.FieldValues['xc_ je']:=floattostr((strToint (s1)*strTofloat(s2)));
except
showmessage('请将数据填写完整!');
exit;
end;
end;
end; 或者可以创建一个临时表,然后再给DBGrid
s1, s2:string;
begin
if key=#13 then
begin
if(DBGridEh1.SelectedField.FieldName='dj')or(DBGridEh1.SelectedField.FieldName='sl')then
begin
try
strziduan1:=DBGridEh1.DataSource.DataSet.FieldValues['dj'];
strziduan2:=DBGridEh1.DataSource.DataSet.FieldValues['sl'];
DBGridEh41.DataSource.DataSet.FieldValues['xc_ je']:=floattostr((strToint (s1)*strTofloat(s2)));
except
showmessage('请将数据填写完整!');
exit;
end;
end;
end; 或者可以创建一个临时表,然后再给DBGrid
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询