procedure TzjyzzzForm.button3Click(Sender: TObject);
var
Faccount, Faccounts: double;
Ftext: String;
k: integer;
begin
if (zjyz1=true) and (zjyz2=true)
then begin
DMBacu.zjyz.Insert;
DMBacu.zjyz.FieldByName('enterpriseID').Asinteger :=DMBacu.SelectUID;
DMBacu.zjyz.FieldByName('evaluate_personne').AsString :=trim(ComboBox2.Text);
DMBacu.zjyz.FieldByName('retained_profits').AsFloat :=StrToFloat(trim(edit1.Text));
DMBacu.zjyz.FieldByName('profits_amount').AsFloat :=StrToFloat(trim(edit2.Text));
DMBacu.zjyz.FieldByName('operation_profits').AsFloat :=StrToFloat(trim(edit3.Text));
DMBacu.zjyz.FieldByName('merchandise').AsFloat :=StrToFloat(trim(edit39.Text));
//数据保存进数据库
DMBacu.zjyz.Post;
showmessage('数据保存成功!');
addata;
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT MAX(uid) AS id FROM account_expressions16');
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('id').AsInteger;
except
end; DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT * FROM account_expressions16 where uid = '+ IntToStr(uid));
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('uid').AsInteger;
k := 2;
Ftext := ' UPDATE account_expressions16 '
+ ' SET '; DMBacu.expressions_result.SQL.Clear;
DMBacu.expressions_result.SQL.Add('SELECT * FROM account_coefficient');
DMBacu.expressions_result.Open;
DMBacu.expressions_result.First;
while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do
begin
Ftext := Ftext + DMBacu.zjyz.Fields[k].FullName + ' = ';
Faccount := DMBacu.zjyz.Fields[k].AsFloat;
Faccounts := Faccount;
Faccount := Faccount * 0.6 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('average').AsFloat) then
begin
Faccount := Faccounts * 0.8 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('allright').AsFloat) then
Faccount := Faccounts;
end
else
if (Faccount < DMBacu.expressions_result.FieldByName('inferior').AsFloat) then
Faccount := Faccounts * 0.2 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat
else
Faccount := Faccounts * 0.4 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (k <> DMBacu.zjyz.Fields.Count -1) then
Ftext := Ftext + FloatToStr(Faccount) + ', '
else
Ftext := Ftext + FloatToStr(Faccount);
DMBacu.expressions_result.Next;
k:= k+1;
end;
Ftext := Ftext + ' Where uid = ' + IntToStr(uid);
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(Ftext);
{showmessage(Ftext);
DMBacu.zjyz.ExecSQL; }
except
end;
end
else
showmessage('指标没有填写完整,请仔细检查!')
end;
我在保存数据的时候,当程序执行下边这段代码时候:
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT MAX(uid) AS id FROM account_expressions16');
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('id').AsInteger;
except
end; DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT * FROM account_expressions16 where uid = '+ IntToStr(uid));
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('uid').AsInteger;
k := 2;
Ftext := ' UPDATE account_expressions16 '
+ ' SET '; DMBacu.expressions_result.SQL.Clear;
DMBacu.expressions_result.SQL.Add('SELECT * FROM account_coefficient');
DMBacu.expressions_result.Open;
DMBacu.expressions_result.First;
while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do
begin
Ftext := Ftext + DMBacu.zjyz.Fields[k].FullName + ' = ';
Faccount := DMBacu.zjyz.Fields[k].AsFloat;
Faccounts := Faccount;
Faccount := Faccount * 0.6 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('average').AsFloat) then
begin
Faccount := Faccounts * 0.8 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('allright').AsFloat) then
Faccount := Faccounts;
end
else
if (Faccount < DMBacu.expressions_result.FieldByName('inferior').AsFloat) then
Faccount := Faccounts * 0.2 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat
else
Faccount := Faccounts * 0.4 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (k <> DMBacu.zjyz.Fields.Count -1) then
Ftext := Ftext + FloatToStr(Faccount) + ', '
else
Ftext := Ftext + FloatToStr(Faccount);
DMBacu.expressions_result.Next;
k:= k+1;
end;
Ftext := Ftext + ' Where uid = ' + IntToStr(uid);
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(Ftext);
{showmessage(Ftext);
DMBacu.zjyz.ExecSQL; }
except
end;
end
else
showmessage('指标没有填写完整,请仔细检查!')
end;
执行到: while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do
就直接跳到END;
请问你们能不能帮我看看这是哪里出的问题啊,小弟在线等,急!!!!!!
var
Faccount, Faccounts: double;
Ftext: String;
k: integer;
begin
if (zjyz1=true) and (zjyz2=true)
then begin
DMBacu.zjyz.Insert;
DMBacu.zjyz.FieldByName('enterpriseID').Asinteger :=DMBacu.SelectUID;
DMBacu.zjyz.FieldByName('evaluate_personne').AsString :=trim(ComboBox2.Text);
DMBacu.zjyz.FieldByName('retained_profits').AsFloat :=StrToFloat(trim(edit1.Text));
DMBacu.zjyz.FieldByName('profits_amount').AsFloat :=StrToFloat(trim(edit2.Text));
DMBacu.zjyz.FieldByName('operation_profits').AsFloat :=StrToFloat(trim(edit3.Text));
DMBacu.zjyz.FieldByName('merchandise').AsFloat :=StrToFloat(trim(edit39.Text));
//数据保存进数据库
DMBacu.zjyz.Post;
showmessage('数据保存成功!');
addata;
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT MAX(uid) AS id FROM account_expressions16');
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('id').AsInteger;
except
end; DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT * FROM account_expressions16 where uid = '+ IntToStr(uid));
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('uid').AsInteger;
k := 2;
Ftext := ' UPDATE account_expressions16 '
+ ' SET '; DMBacu.expressions_result.SQL.Clear;
DMBacu.expressions_result.SQL.Add('SELECT * FROM account_coefficient');
DMBacu.expressions_result.Open;
DMBacu.expressions_result.First;
while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do
begin
Ftext := Ftext + DMBacu.zjyz.Fields[k].FullName + ' = ';
Faccount := DMBacu.zjyz.Fields[k].AsFloat;
Faccounts := Faccount;
Faccount := Faccount * 0.6 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('average').AsFloat) then
begin
Faccount := Faccounts * 0.8 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('allright').AsFloat) then
Faccount := Faccounts;
end
else
if (Faccount < DMBacu.expressions_result.FieldByName('inferior').AsFloat) then
Faccount := Faccounts * 0.2 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat
else
Faccount := Faccounts * 0.4 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (k <> DMBacu.zjyz.Fields.Count -1) then
Ftext := Ftext + FloatToStr(Faccount) + ', '
else
Ftext := Ftext + FloatToStr(Faccount);
DMBacu.expressions_result.Next;
k:= k+1;
end;
Ftext := Ftext + ' Where uid = ' + IntToStr(uid);
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(Ftext);
{showmessage(Ftext);
DMBacu.zjyz.ExecSQL; }
except
end;
end
else
showmessage('指标没有填写完整,请仔细检查!')
end;
我在保存数据的时候,当程序执行下边这段代码时候:
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT MAX(uid) AS id FROM account_expressions16');
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('id').AsInteger;
except
end; DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(' SELECT * FROM account_expressions16 where uid = '+ IntToStr(uid));
try
DMBacu.zjyz.Open;
if (DMBacu.zjyz.RecordCount > 0) then
uid := DMBacu.zjyz.FieldByName('uid').AsInteger;
k := 2;
Ftext := ' UPDATE account_expressions16 '
+ ' SET '; DMBacu.expressions_result.SQL.Clear;
DMBacu.expressions_result.SQL.Add('SELECT * FROM account_coefficient');
DMBacu.expressions_result.Open;
DMBacu.expressions_result.First;
while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do
begin
Ftext := Ftext + DMBacu.zjyz.Fields[k].FullName + ' = ';
Faccount := DMBacu.zjyz.Fields[k].AsFloat;
Faccounts := Faccount;
Faccount := Faccount * 0.6 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('average').AsFloat) then
begin
Faccount := Faccounts * 0.8 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (Faccount > DMBacu.expressions_result.FieldByName('allright').AsFloat) then
Faccount := Faccounts;
end
else
if (Faccount < DMBacu.expressions_result.FieldByName('inferior').AsFloat) then
Faccount := Faccounts * 0.2 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat
else
Faccount := Faccounts * 0.4 * DMBacu.expressions_result.FieldByName('quanzhong').AsFloat;
if (k <> DMBacu.zjyz.Fields.Count -1) then
Ftext := Ftext + FloatToStr(Faccount) + ', '
else
Ftext := Ftext + FloatToStr(Faccount);
DMBacu.expressions_result.Next;
k:= k+1;
end;
Ftext := Ftext + ' Where uid = ' + IntToStr(uid);
DMBacu.zjyz.SQL.Clear;
DMBacu.zjyz.SQL.Add(Ftext);
{showmessage(Ftext);
DMBacu.zjyz.ExecSQL; }
except
end;
end
else
showmessage('指标没有填写完整,请仔细检查!')
end;
执行到: while (not DMBacu.expressions_result.Eof) and (k <= DMBacu.zjyz.Fields.Count -1) do
就直接跳到END;
请问你们能不能帮我看看这是哪里出的问题啊,小弟在线等,急!!!!!!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货