Foxtable(狐表)用户栏目专家坐堂 → 算术运算导致溢出


  共有2186人关注过本帖树形打印复制链接

主题:算术运算导致溢出

帅哥哟,离线,有人找我吗?
tongke
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:101 积分:932 威望:0 精华:0 注册:2018/1/23 10:52:00
算术运算导致溢出  发帖心情 Post By:2018/5/21 16:32:00 [只看该作者]

Dim shenling As WinForm.NumericComboBox = e.Form.Controls("NumericComboBox1")'申领数量
Dim slsl As Double '申领数量
slsl = Round2((shenling.Value),2)
Dim rnew As DataRow
rnew = DataTables("填写料单").AddNew()
rnew("in_number") = slsl
rnew("k_number") = slsl
rnew.Save()

执行后,后台数据库的in_number、k_number字段都变成了4.70202E17,再打开程序调用这个表时就提示“算术运算导致溢出"

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/21 16:36:00 [只看该作者]

你贴出的代码没问题。肯定是其它代码影响的。

 

贴出你datacolchanged、beforeSaveDatarow等表事件代码。或者删除那些表事件代码测试。

 

不然,请做一个实例发上来。


 回到顶部
帅哥哟,离线,有人找我吗?
tongke
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:101 积分:932 威望:0 精华:0 注册:2018/1/23 10:52:00
  发帖心情 Post By:2018/5/21 17:00:00 [只看该作者]

Dim shenling As WinForm.NumericComboBox = e.Form.Controls("NumericComboBox1")'申领数量
Dim yl As WinForm.Label = e.Form.Controls("lb_ylsl") '已领标签
Dim jhsl,ylsl,slsl,slheji As Double '计划数量,已领数量,申领数量,已领申领合计
slsl = Round2((shenling.Value),2)
'MessageBox.Show(slsl)
If slsl = 0 Then
    MessageBox.Show("申领数量不能为零!")
    e.Form.Controls("NumericComboBox1").Select()
    Return
End If
jhsl = round2(Tables("计划审批").Current("k_quantity"),2)
ylsl = round2(Tables("计划审批").Current("Using_Number"),2)
slheji = Round2((ylsl + slsl),2)

If slheji > jhsl Then
    MessageBox.Show("计划数量不足,请修改申领数量!")
    Return
Else
    Tables("计划审批").Current("Using_Number") = slheji
    Tables("计划审批").Current.Save()
    '调整显示数量
    yl.Text = slheji
    shenling.Value = Round2((jhsl - ylsl - slsl),2)
    Dim rnew As DataRow
    rnew = DataTables("填写料单").AddNew()
    rnew("code") = Tables("计划审批").Current("code")
    rnew("plan_time") = Tables("计划审批").Current("Plan_time")
    '填写料单时间
    Dim d As Date
    Dim dy,dm As Integer
    d = Functions.Execute("获取SQLServer服务器时间",_sjy)
    dy = d.Year
    dm = d.Month
    rnew("fillin_time") = d
    rnew("in_number") = slsl
    rnew("price") = Tables("计划审批").Current("price")
    rnew("in_person") = Vars("vtruename")
    rnew("in_use") = ""
    rnew("Sources_of_funding") = Tables("计划审批").Current("Sources_of_funding")
    rnew("in_year") = dy
    rnew("in_month") = dm
    rnew("wgzx_number") = slsl
    rnew("k_number") = slsl
    rnew("Area_Quantity") = slsl
    rnew("accounting_number") = slsl
    rnew("Unit") = Tables("计划审批").Current("Unit")
    rnew("Area") = Tables("计划审批").Current("area")
    rnew("Department") = Tables("计划审批").Current("department")
    rnew("name") = Tables("计划审批").Current("name")
    rnew("check_number") = slsl
    rnew("Primary_key") = Tables("计划审批").Current("Primary_key")
    rnew("Specification") = Tables("计划审批").Current("Specification")
    rnew("Model") = Tables("计划审批").Current("Model")
    rnew("Department_Name") = Tables("计划审批").Current("Department_Name")
    rnew("Supplier") = Tables("计划审批").Current("Provider")
    rnew("plan_serial_number") = Tables("计划审批").Current("serial_number")
    rnew("print_number") = 0
    rnew("Area_Approval") = "未审核"
    rnew("wgzx_approval") = "未审核"
    rnew("k_approval") = "未审核"
    rnew("accounting_operator") = "未记账"
    '自动编号
    rnew("Order_Number") = Functions.Execute("自动获取料单最大编号",dy,dm)
    rnew.Save()
    Tables("填写料单").Position = Tables("填写料单").Rows.Count - 1
End If


所有代码都在这里,这是窗口里面一个Button的Click代码,没有datacolchanged、beforeSaveDatarow事件。

 回到顶部
帅哥哟,离线,有人找我吗?
tongke
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:101 积分:932 威望:0 精华:0 注册:2018/1/23 10:52:00
  发帖心情 Post By:2018/5/21 17:04:00 [只看该作者]

用户反映是在没有正常退出系统情况下重启电脑出现的问题

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/21 17:08:00 [只看该作者]

1、你自己测试有没有问题?msgbox弹出一下你的值看是否正确?能否重现错误?

 

msgbox(slsl)

 

2、不正常退出的时候发生的话,那正常退出的时候,你执行了哪些代码?是否没有执行那些代码导致的?


 回到顶部