找到错误所在,但不会解决
在与Query_B1相连的几个DBEdit地onchange事件中添加了以下事件,所以在每次Query_B1
激活或上一条记录和下一条记录都会触发这个事件,注释掉这部分代码就没事了
with Dm.Query_B1 do
begin
if state<>dsEDit then
edit;
case TDbEdit(Sender).tag of
1:begin
FieldByName('收入合计').AsFloat := FieldByName('自行出口').AsFloat+
FieldByName('代理出口').AsFloat+
FieldByName('其他收入').AsFloat ;
end;
2:begin
FieldByName('支出合计').AsFloat := FieldByName('利润分配').AsFloat +
FieldByName('进口用汇').AsFloat +
FieldByName('工资').AsFloat +
FieldByName('外事经费').AsFloat +
FieldByName('贷款本息').AsFloat +
FieldByName('其他支出').AsFloat;
end;
3:begin
FieldByName('差额').AsFloat := FieldByName('收入合计').AsFloat-
FieldByName('支出合计').AsFloat;
end;
4:begin
FieldByName('外汇收支结余').AsFloat :=FieldByName('差额').AsFloat;
end;
5,7,8,9:begin
if FieldByName('商品销售收入').AsFloat <> 0 then
FieldByName('实际出口比例').AsFloat := (FieldByName('出口销售收入').AsFloat/
FieldByName('商品销售收入').AsFloat)*100;
if FieldByName('商品销售收入').AsFloat <> 0 then
FieldByName('销售利润率').AsFloat := (FieldByName('利润总额').AsFloat/
FieldByName('商品销售收入').AsFloat)*100;
if FieldByName('商品销售收入').AsFloat <> 0 then
FieldByName('费用水平').AsFloat := (FieldByName('费用总额').AsFloat/
FieldByName('商品销售收入').AsFloat)*100;
if FieldByName('净资产').AsFloat <> 0 then
FieldByName('净资产收益率').AsFloat := (FieldByName('利润总额').AsFloat/
FieldByName('净资产').AsFloat)*100;
end;
6:begin
if FieldByName('注册资本').AsFloat <> 0 then
FieldByName('注资比例').AsFloat := (FieldByName('实收资本').AsFloat/
FieldByName('注册资本').AsFloat)*100;
end;
end;
end ;