//判断单位转换率 try um_rate := vp_mstr.F('vp_um_rate_d').AsFloat / vp_mstr.F('vp_um_rate_m').AsFloat; if um_rate <= 0 then abort else if (vp_mstr.F('vp_um').AsString = vp_mstr.F('part_um').AsString) and (um_rate <> 1) then abort else if (vp_mstr.F('vp_um').AsString <> vp_mstr.F('part_um').AsString) and (um_rate = 1) then abort; except on e:Exception do begin Application.MessageBox(PChar(E.Message), 'error', 16);//抛出异常信息 priMsg.ShowMsg('004'); //004=单位转换率设置错误! edt_vp_um_rate_d.SetFocus; abort; end; end;