W
windflower
Unregistered / Unconfirmed
GUEST, unregistred user!
现有一张承付单表,有以下字段:付款编号、应付金额、本次实际付款金额,
adoquery1.text:='select * from 承付单表'
我是通过adoquery.append来录入新记录的.我使用了dbedit来录入以上数据(dbedit已与
数据库关联),我希望在输入完本次实际付款金额后敲回车键能计算出余额(余额等于
应付金额-本次实际付款金额),显示在dbedit4中。(dbedit4没和数据库关联)
我的adoquery.locktype为ltBatchOptimistic,我的主要程序如下:
procedure TForm1.DBEdit3KeyPress(Sender: TObject; var Key: Char);
//dbedit3为录入本次实际付款金额的 dbedit
var
ye:double; //余额
begin
if key=#13 then
begin
ye:=adoquery1.fieldvalues['应付金额']-adoquery1.fieldvalues['本次实际付款金额'];
dbedit4.text:=trim(formatfloat('#,##0.00',ye));
end;
end;
但是在调试中发现当输入完应付金额和本次实际付款金额桥回车键后,我用
if (adoquery1.fieldbyname('应付金额').isnull) then
showmessage('应付金额为空');
if (adoquery1.fieldbyname('本次实际付款金额').isnull) then
showmessage('本次实际付款金额为空');
发现应付金额和本次实际付款金额居然为空,更不用说计算余额了。
请问这是怎么回事?该怎么办呢?
我曾经在它们的onchange事件中添加如下代码:
procedure TForm1.DBEdit3Change(Sender: TObject);
begin
adoquery1.edit;
if trim(dbedit3.text)<>'' then
adoquery1.fieldvalues['本次实际付款金额']:=strtofloat(dbedit3.text);
end;
procedure TForm1.DBEdit2Change(Sender: TObject);
begin
adoquery1.edit;
if trim(dbedit2.text)<>'' then
adoquery1.fieldvalues['应付金额']:=strtofloat(dbedit2.text);
end;
但因为我使用了
TNumericField(querymaininfo.FieldByName('本次实际付款金额')).displayformat:='#,##0.00';
TNumericField(querymaininfo.FieldByName('应付金额')).displayformat:='#,##0.00';
来进行显示格式控制
在调试时,系统提示
'12,321.00' is not a valid floating point value
该怎么办呢?
请大家帮帮忙!谢谢!
adoquery1.text:='select * from 承付单表'
我是通过adoquery.append来录入新记录的.我使用了dbedit来录入以上数据(dbedit已与
数据库关联),我希望在输入完本次实际付款金额后敲回车键能计算出余额(余额等于
应付金额-本次实际付款金额),显示在dbedit4中。(dbedit4没和数据库关联)
我的adoquery.locktype为ltBatchOptimistic,我的主要程序如下:
procedure TForm1.DBEdit3KeyPress(Sender: TObject; var Key: Char);
//dbedit3为录入本次实际付款金额的 dbedit
var
ye:double; //余额
begin
if key=#13 then
begin
ye:=adoquery1.fieldvalues['应付金额']-adoquery1.fieldvalues['本次实际付款金额'];
dbedit4.text:=trim(formatfloat('#,##0.00',ye));
end;
end;
但是在调试中发现当输入完应付金额和本次实际付款金额桥回车键后,我用
if (adoquery1.fieldbyname('应付金额').isnull) then
showmessage('应付金额为空');
if (adoquery1.fieldbyname('本次实际付款金额').isnull) then
showmessage('本次实际付款金额为空');
发现应付金额和本次实际付款金额居然为空,更不用说计算余额了。
请问这是怎么回事?该怎么办呢?
我曾经在它们的onchange事件中添加如下代码:
procedure TForm1.DBEdit3Change(Sender: TObject);
begin
adoquery1.edit;
if trim(dbedit3.text)<>'' then
adoquery1.fieldvalues['本次实际付款金额']:=strtofloat(dbedit3.text);
end;
procedure TForm1.DBEdit2Change(Sender: TObject);
begin
adoquery1.edit;
if trim(dbedit2.text)<>'' then
adoquery1.fieldvalues['应付金额']:=strtofloat(dbedit2.text);
end;
但因为我使用了
TNumericField(querymaininfo.FieldByName('本次实际付款金额')).displayformat:='#,##0.00';
TNumericField(querymaininfo.FieldByName('应付金额')).displayformat:='#,##0.00';
来进行显示格式控制
在调试时,系统提示
'12,321.00' is not a valid floating point value
该怎么办呢?
请大家帮帮忙!谢谢!