dbedit1 中输入单价 dbedit2中输入数量
在dbedit3中得到“总金额”dbedit。text 转换过程中老报错。请哪位帮忙解决。
在dbedit3中得到“总金额”dbedit。text 转换过程中老报错。请哪位帮忙解决。
解决方案 »
- 调用完excel后怎么删掉进程?
- 估计是ado 问题 请高人 指点 不胜感激!!!
- 请问各位大虾:如何把cookie内容加入Tidhttp.post中?!
- 怎么传送文件的文件名?急急急!!!
- 怎么取得某文件夹下的所有第一层文件夹名和文件名?
- 让我做个pos系统,但是一点不会,请问那里有这方面的网站!
- 帮忙看看这段代码为什么出错
- 讨论:现在公司招聘Delphi程序员都有哪些要求,需要哪些Delphi的技能
- PopupMenu如何知道是由哪一个控件激活的(几个控件共用一个PopupMenu)
- delphi xe3中BusinessSkinForm 10.31 Ribbon使用问题,谁有demo,着急!!!!!
- FastReport做分组报表时遇到的问题
- 写文件问题! 急!
1、设置数据集为编辑状态: (Edit)
2、修改字段的值; (FieldByName("FieldName")->Value = XXX;)
3、Post;
//推荐使用StrToFloatDef,可以默认值,如果转换失败,则返回默认值,不会抛出异常!
//还有StrToIntDef,StrToDateTimeDef,自己看帮助吧!
dbedit3.Text := FloatToStr(
StrToFloatDef(Trim(dbedit1.Text), 0) *
StrToFloatDef(Trim(dbedit2.Text), 0)
);
Debugger Exception Notification
---------------------------
Project ZFGJJ.exe raised exception class EConvertError with message ''' is not a valid floating point value'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
可以用以下方法:
procedure TXXForm.OnCalcCash(sender: TField);
var
sumCash: double;
begin
sumCash := DataSet.FieldByName(单价字段).asFloat*DataSet.FieldByName(数量字段);
//处理sumCash结果,比如保存到记录集等
end;动态绑定事件,需要在打开记录集后,就绑定。
DataSet.FindField(单价字段).OnChange := OnCalcCash;
DataSet.FindField(数量字段).OnChange := OnCalcCash;
procedure TDM.DataSet1CalcFields(DataSet: TDataSet);
begin
DataSet.FieldByName('总金额').AsFloat :=
StrToFloatDef(DataSet.FieldByName('单价').AsFloat, 0) * StrToFloatDef(DataSet.FieldByName('数量').AsFloat, 0);
end;2.楼主可以在DBEdit1和DBEdit2的OnChange事件中执行计算,这种方法很直接,可以立刻看到计算结果:
if (DataSet1.State in dsEditModes) then
DataSet1.FieldByName('总金额').AsFloat :=
StrToFloatDef(DataSet1.FieldByName('单价').AsFloat, 0) * StrToFloatDef(DataSet1.FieldByName('数量').AsFloat, 0);