Foxtable(狐表)用户栏目专家坐堂 → 代码不执行


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

主题:代码不执行

帅哥,在线噢!
lgz518
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8316 威望:0 精华:0 注册:2019/6/13 9:57:00
代码不执行  发帖心情 Post By:2022/1/6 15:51:00 [只看该作者]

下面代码,不执行,如何解决?

Select Case e.DataCol.Name
    Case  "G1","G2","G3","G4","G5","G6","G7","G8","G9","G10"
        e.DataRow("产品1")  = e.DataRow("GX1")/ e.DataRow("G1")
        e.DataRow("产品2")  = (e.DataRow("GX2"))/ (e.DataRow("G2"))
        e.DataRow("产品3")  = (e.DataRow("GX3"))/ (e.DataRow("G3"))
        e.DataRow("产品4")  = (e.DataRow("GX4"))/ (e.DataRow("G4"))
        e.DataRow("产品5")  = (e.DataRow("GX5"))/ (e.DataRow("G5"))
        e.DataRow("产品6")  = (e.DataRow("GX6"))/ (e.DataRow("G6"))
        e.DataRow("产品7")  = (e.DataRow("GX7"))/ (e.DataRow("G7"))
        e.DataRow("产品8")  = (e.DataRow("GX8"))/ (e.DataRow("G8"))
        e.DataRow("产品9")  = (e.DataRow("GX9"))/ (e.DataRow("G9"))
        e.DataRow("产品10")  = (e.DataRow("GX10"))/ (e.DataRow("G10"))               
        
End Select

 回到顶部
帅哥,在线噢!
lgz518
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8316 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/1/6 16:11:00 [只看该作者]

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2021.12.30.1
错误所在事件:表,过程审核主表,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“”到类型“Double”的转换无效。
输入字符串的格式不正确。

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110260 积分:561130 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/6 16:17:00 [只看该作者]

这些都必须是数值列,不能是字符列

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


加好友 发短信
等级:三尾狐 帖子:760 积分:5430 威望:0 精华:0 注册:2012/10/5 21:53:00
  发帖心情 Post By:2022/1/6 16:26:00 [只看该作者]

Dim i As Integer
Select Case e.DataCol.Name
    Case  "G1","G2","G3","G4","G5","G6","G7","G8","G9","G10"
        i = e.DataCol.Name.Replace("G","")
        If val(e.DataRow(e.DataCol.Name)) = 0 Then
            e.DataRow("产品" & i) = 0
        Else
            e.DataRow("产品" & i)  = val(e.DataRow("GX" & i))/ val(e.DataRow(e.DataCol.Name))
        End If
End Select
[此贴子已经被作者于2022/1/6 16:35:42编辑过]

 回到顶部
帅哥,在线噢!
lgz518
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8316 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/1/6 16:30:00 [只看该作者]

按下面进行转换,提示“未知错误码”
e.DataRow("产品1")  = e.DataRow("GX1")/(e.DataRow(Double("G1")))


注:

 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110260 积分:561130 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/6 16:34:00 [只看该作者]

多了个括号

 回到顶部
帅哥,在线噢!
lgz518
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8316 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/1/6 16:45:00 [只看该作者]

e.DataRow("产品1")  = e.DataRow("GX1")/e.DataRow(Double("G1")),这个也报错,未知错误码

 回到顶部
帅哥,在线噢!
lgz518
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1228 积分:8316 威望:0 精华:0 注册:2019/6/13 9:57:00
  发帖心情 Post By:2022/1/6 16:50:00 [只看该作者]

e.DataRow("产品1")  = e.DataRow("GX1")/e.DataRow(Double("G1")),
e.DataRow("产品1") 是单精小数,e.DataRow("GX1")是整数,e.DataRow("G1"):字符

需求是
e.DataRow("产品1") 平均数为15 = e.DataRow("GX1")为总数量150      /e.DataRow(Double("G1"))为10条记录


 回到顶部
帅哥,在线噢!
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110260 积分:561130 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/1/6 17:03:00 [只看该作者]

e.DataRow("产品1")  = e.DataRow("GX1")/val(e.DataRow("G1"))

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


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

还要出错的,0不能作除数,应该这样:
Dim cnm As String
Dim g As Double
Select Case e.DataCol.Name
    Case  "G1","G2","G3","G4","G5","G6","G7","G8","G9","G10"
        g = val(e.DataRow(e.DataCol.Name))
        If g = 0
            e.DataRow(cnm.Replace("G","产品") = 0
        Else
            e.DataRow(cnm.Replace("G","产品") = e.DataRow(cnm.Replace("G","GX")/g      
        End If
End Select

这样才能完全避免做除数的列没有内容时不会报错。

[此贴子已经被作者于2022/1/6 17:28:56编辑过]

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