环境为 delphi6+sql 2005
在数据库里面有3列数据 具体为 quantity decimal(18,0),unitprice decimal(18,2),amount decimal(18,2)现在通过adoquery连接数据库在cxgrid中显示这3列数据问题:现在我想控制在cxgrid中输入quantity 的时候能否只能输入整形数据,unitprice 的时候输入的数据只能为小数点最多2位。我在quantity 的onchange时间中设置了
InvQty:=QryInvList.fieldbyname('quantity').AsInteger;
InvPri:=StrToFloat(formatfloat('0.00',QryInvList.fieldbyname('unitprice').AsFloat));
QryInvList.FieldByName('amount').AsFloat:=InvQty*InvPri;
如果这样处理的话会出现这样一种情况:当我quantity 列输入 1.5 ,unitprice 列输入2 则 amount 列会计算为 4 但是quantity 列显示为1 unitprice 列显示 2 amount 显示为4 保存进数据库里面的话 quantity 显示为1 unitprice 为2 amount 为 4
请教高手我该如何处理这种问题。
在数据库里面有3列数据 具体为 quantity decimal(18,0),unitprice decimal(18,2),amount decimal(18,2)现在通过adoquery连接数据库在cxgrid中显示这3列数据问题:现在我想控制在cxgrid中输入quantity 的时候能否只能输入整形数据,unitprice 的时候输入的数据只能为小数点最多2位。我在quantity 的onchange时间中设置了
InvQty:=QryInvList.fieldbyname('quantity').AsInteger;
InvPri:=StrToFloat(formatfloat('0.00',QryInvList.fieldbyname('unitprice').AsFloat));
QryInvList.FieldByName('amount').AsFloat:=InvQty*InvPri;
如果这样处理的话会出现这样一种情况:当我quantity 列输入 1.5 ,unitprice 列输入2 则 amount 列会计算为 4 但是quantity 列显示为1 unitprice 列显示 2 amount 显示为4 保存进数据库里面的话 quantity 显示为1 unitprice 为2 amount 为 4
请教高手我该如何处理这种问题。
InvQty,InvPri:Float; ..........
InvQty:=QryInvList.fieldbyname('quantity').AsFloat;
InvPri:=QryInvList.fieldbyname('unitprice').AsFloat;
QryInvList.FieldByName('amount').value:=InvQty*InvPri;
直接这样呢??