Foxtable(狐表)用户栏目专家坐堂 → 仿真计算器-------更上一层楼


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

主题:仿真计算器-------更上一层楼

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/8/24 14:59:00 [只看该作者]

不知大家注意到没有:

把计算器中的小数,录入到当前单元格的整数列中,会报错。

与其系统报告看不懂的错,不如俺主动认错,报一个大家看的懂的错:“此列数据不能有小数”。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:仿真计算器.rar


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/8/24 15:50:00 [只看该作者]

呵呵,我没有下载呢,结合try捕获错误,并四舍五入方法、保留整数即可解决!
[此贴子已经被作者于2013-8-24 15:57:38编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/8/24 15:56:00 [只看该作者]

程老师好!


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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/8/24 16:02:00 [只看该作者]

按12楼的提示试一试!

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/8/24 16:07:00 [只看该作者]

这个倒不用小数转整数,给个“此列数据不能有小数”的提示,让用户自己看着办。

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40556 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2013/8/24 21:47:00 [只看该作者]

用户只能干瞪眼,要么手工输入,何不修改代码?况且还要避开日期列和逻辑列!

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


加好友 发短信
等级:二尾狐 帖子:558 积分:4352 威望:0 精华:2 注册:2011/4/18 8:27:00
  发帖心情 Post By:2013/8/24 23:41:00 [只看该作者]

'数值列取值前判断,以下代码试试:

Dim s As Decimal = "0.124562334578"
Dim s1 As String
Dim dc As DataCol = CurrentTable.DataTable.DataCols(CurrentTable.cols(CurrentTable.Colsel).name)
If dc.IsNumeric AndAlso dc.ExtendType = ExtendTypeEnum.None Then '是数值列且没有扩展
    If dc.datatype.name = "Byte" Then '微整数
     s = Round2(s,0)
        If s < 0 OrElse s > 255 Then
            Messagebox.show("超出取值范围,所在单元格的取值范围为:" & vbcrlf & "介于 0 到 255 之间的整数。"  ,"提示")
        Else
            CurrentTable.value = s
        End If
    End If
    If dc.datatype.name = "Int16" Then '短整数
     s = Round2(s,0)
        If s < -32768 OrElse s > 32767 Then
            Messagebox.show("超出取值范围,所在单元格的取值范围为:" & vbcrlf & "介于 -32768 到 32767 之间的整型。"  ,"提示")
        Else
            CurrentTable.value = s
        End If
    End If
   
    If dc.datatype.name = "Int32" Then '整数
     s = Round2(s,0)
        If s < -2147483648 OrElse s > 2147483647 Then
            Messagebox.show("超出取值范围,所在单元格的取值范围为:" & vbcrlf & "介于 -2147483648 到 2147483647 之间的整数。"  ,"提示")
        Else
            CurrentTable.value = s
        End If
    End If
    If dc.datatype.name = "Single" Then '单精度小数
     s = Round2(s,dc.Decimals)
        s1 = s
        s1 = s1.replace(".","")
        s1 = s1.trimstart("0","")
        If s1.length > 7 Then
            Messagebox.show("超出取值范围,所在单元格的取值范围为:" & vbcrlf & "有效数字为7位。"  ,"提示")
        Else
            CurrentTable.value = s
        End If
    End If
    If dc.datatype.name = "Double" Then '双精度小数
     s = Round2(s,dc.Decimals)
        s1 = s
        s1 = s1.replace(".","")
        s1 = s1.trimstart("0","")
        If s1.length > 15 Then
            Messagebox.show("超出取值范围,所在单元格的取值范围为:" & vbcrlf & "有效数字为15位。"  ,"提示")
        Else
            CurrentTable.value = s
        End If
    End If
    If dc.datatype.name = "Decimal" Then '高精度小数
     s = Round2(s,dc.Decimals)
        s1 = s
        s1 = s1.replace(".","")
        s1 = s1.trimstart("0","")
        If s1.length > 28 Then
            Messagebox.show("超出取值范围,所在单元格的取值范围为:" & vbcrlf & "有效数字为28位."  ,"提示")
        Else
            CurrentTable.value = s
        End If
    End If
End If

 

[此贴子已经被作者于2013-8-25 7:06:01编辑过]

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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2013/8/25 7:21:00 [只看该作者]

以下是引用程兴刚在2013-8-24 21:47:00的发言:
用户只能干瞪眼,要么手工输入,何不修改代码?况且还要避开日期列和逻辑列!

程老师没逐项使用,都不是问题了。


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


加好友 发短信
等级:一尾狐 帖子:463 积分:3792 威望:0 精华:0 注册:2013/2/20 11:07:00
  发帖心情 Post By:2016/5/27 17:12:00 [只看该作者]

谢谢分享

 回到顶部
总数 19 上一页 1 2