Foxtable(狐表)用户栏目专家坐堂 → [求助]这段代码存在什么问题?


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

主题:[求助]这段代码存在什么问题?

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5879 威望:0 精华:0 注册:2013/7/29 12:00:00
[求助]这段代码存在什么问题?  发帖心情 Post By:2013/9/20 22:09:00 [只看该作者]

‘实现目的:数量由单次用量和规格自动算出,不足一个包装单位时按一个包装单位计算。规格为整数时运行正常,规格为小数时出现错误:试图除以零。

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "规格","单次用量","单价"
        If dr.Isnull("规格") OrElse dr.Isnull("单次用量") Then
            dr("数量") = Nothing
            dr("金额") = Nothing
        ElseIf dr("单次用量") / dr("规格") <= 1 Then
            dr("数量") = 1
        ElseIf dr("单次用量") / dr("规格") > 1 And dr("单次用量") Mod dr("规格") <> 0
            dr("数量") = dr("单次用量") \ dr("规格") + 1
        ElseIf dr("单次用量") Mod dr("规格") = 0
            dr("数量") = dr("单次用量") \ dr("规格")
           
        End If
End Select
dr("金额") = dr("单价") * dr("数量") * dr("频次") * dr("天数")

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.foxdb


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


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

 100 mod 0.5 这样是不行的。

 mod 的后面,必须是整数。

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5879 威望:0 精华:0 注册:2013/7/29 12:00:00
  发帖心情 Post By:2013/9/20 22:36:00 [只看该作者]

比如试剂的规格经常是0.5mg、0.2g,等等,如何办呢?


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


加好友 发短信
等级:版主 帖子:1693 积分:12135 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2013/9/20 22:39:00 [只看该作者]

乘10    除10


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


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

 你适当变通一下

(dr("单次用量") * 10) Mod (dr("规格") * 10)

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5879 威望:0 精华:0 注册:2013/7/29 12:00:00
  发帖心情 Post By:2013/9/20 22:42:00 [只看该作者]

5 mod 1.5 能正常运行,5 mod 0.5 却不能运行,不知何故?
[此贴子已经被作者于2013-9-20 22:42:36编辑过]

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5879 威望:0 精华:0 注册:2013/7/29 12:00:00
  发帖心情 Post By:2013/9/20 22:55:00 [只看该作者]

故障依旧,闹心!


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


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

 测试良久,发觉必须改成如下方能正常。不知其原因

Dim dr As DataRow = e.DataRow
Select Case e.DataCol.Name
    Case "规格", "单次用量", "单价"
        Dim b1 As Boolean = ((dr("单次用量")*10) Mod (dr("规格")*10) <> 0)
        Dim b2 As Boolean = ((dr("单次用量")*10) Mod (dr("规格")*10) = 0)
        If dr.Isnull("规格") OrElse dr.Isnull("单次用量") Then
            dr("数量") = Nothing
            dr("金额") = Nothing
        ElseIf dr("单次用量") / dr("规格") <= 1 Then
            dr("数量") = 1
        ElseIf dr("单次用量") / dr("规格") > 1 AndAlso b1
            dr("数量") = (dr("单次用量") * 10) \ (dr("规格") * 10) + 1
        ElseIf b2
            dr("数量") = (dr("单次用量") * 10) \ (dr("规格") * 10) 
        End If
End Select
dr("金额") = dr("单价") * dr("数量") * dr("频次") * dr("天数")

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


加好友 发短信
等级:四尾狐 帖子:822 积分:5879 威望:0 精华:0 注册:2013/7/29 12:00:00
  发帖心情 Post By:2013/9/21 0:03:00 [只看该作者]

万分感谢,困惑了多天的问题在您这儿得到无私的帮助。再次感谢!


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


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

以下是引用zyqzyy在2013-9-20 22:42:00的发言:
5 mod 1.5 能正常运行,5 mod 0.5 却不能运行,不知何故?
[此贴子已经被作者于2013-9-20 22:42:36编辑过]

 

因为余数不能小于1


 回到顶部
总数 11 1 2 下一页