CXGRID中有多列 包括 数量,单价,金额,其中金额列为计算列
先按BUTTON1 在CXGRID中增加一列 我使用 ADOQuery1.AppendRecord实现
然后更改 数量 和单价列,金额列自动会变化。如果没有代码1 那么执行代码2,在CXGRID中会增加一行记录
如果没有代码2,那么执行代码1,金额列会变化。但两个代码都存在的情况下 报错 说 '' is not a valid floating point valueprocedure TForm1.ADOQuery1amountChange(Sender: TField);//代码1
begin
if Sender.Text='' then
Sender.Text:='0';
ADOQuery1.FieldByName('summoney').AsFloat:=ADOQuery1.fieldbyname('amount').AsFloat * ADOQuery1.fieldbyname('price').AsFloat;
end;procedure TForm1.Button1Click(Sender: TObject); //代码2
begin
ADOQuery1.AppendRecord(['2',Edit1.Text,0,0,0,'aaa','bbb']);
end;
先按BUTTON1 在CXGRID中增加一列 我使用 ADOQuery1.AppendRecord实现
然后更改 数量 和单价列,金额列自动会变化。如果没有代码1 那么执行代码2,在CXGRID中会增加一行记录
如果没有代码2,那么执行代码1,金额列会变化。但两个代码都存在的情况下 报错 说 '' is not a valid floating point valueprocedure TForm1.ADOQuery1amountChange(Sender: TField);//代码1
begin
if Sender.Text='' then
Sender.Text:='0';
ADOQuery1.FieldByName('summoney').AsFloat:=ADOQuery1.fieldbyname('amount').AsFloat * ADOQuery1.fieldbyname('price').AsFloat;
end;procedure TForm1.Button1Click(Sender: TObject); //代码2
begin
ADOQuery1.AppendRecord(['2',Edit1.Text,0,0,0,'aaa','bbb']);
end;
解决方案 »
- delphi左连接表时 使用clientdataset.applyUpdate 没有报错但是也没有保存到数据库
- 如何保存在DBGrid选中的多行数据,给外面使用
- 请教一个表较麻烦的界面的问题 !
- 谁有《Delphi深度历险》的电子版图书 ,请发至:[email protected] 送50分
- 寻delphi5.X分布式多层应用--电子商务篇光盘上的源代码(demo)
- 在delphi中怎样程序实现把一个应用程序加载到开始菜单的启动里面?50分大放送!
- SOS !! 如何在程序中通过FTP在别的机器上建立目录??? 急急急!!!
- 求助一个delphi 关于从excel导入到sql 2005的问题,这是一段以前用过的代码,但是当我再次使用时却不能用 而且也不报错!!
- 求购一个mp3相关的程序,价格面议。up有分
- 怎样实现从客户端把数据库COPY到服务器端?
- 调用VC DLL 解决??
- 关于用文件流写文件的问题,请大家帮忙
begin
if Sender.isNull then exit;
ADOQuery1.FieldByName('summoney').AsFloat:= sender.value * ADOQuery1.fieldbyname('price').AsFloat;
end;procedure TForm1.Button1Click(Sender: TObject); //代码2
begin
ADOQuery1.AppendRecord(['2',Edit1.Text,0,0,0,'aaa','bbb']); // 這裏 Edit1.text 是對應哪一個字段,字符還是浮點或整型
end;
兩個地方都有可能
转换成Float时出错,所以你传值时,一定要保证字段的对应,并且数值型字段赋值,数值要合法
varchar(50) varchar(50) decimal
ADOQuery1.FieldByName('summoney').AsFloat:=ADOQuery1.fieldbyname('amount').AsFloat * ADOQuery1.fieldbyname('price').AsFloat;
看一下AsFloat的值,估计时一些字段内容不能转为Float
if (ADOQuery1.fieldbyname('price').AsString<>'') and (ADOQuery1.fieldbyname('amount').AsString<>'') then
ADOQuery1.FieldByName('summoney').AsFloat:= ADOQuery1.fieldbyname('amount').AsFloat * ADOQuery1.fieldbyname('price').AsFloat;
这样可以了 这个有什么不同呀