以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 代码不执行 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174236) |
|
-- 作者:lgz518 -- 发布时间: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 -- 发布时间:2022/1/6 16:11:00 -- .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2021.12.30.1 错误所在事件:表,过程审核主表,DataColChanged 详细错误信息: 调用的目标发生了异常。 从字符串“”到类型“Double”的转换无效。 输入字符串的格式不正确。
|
|
-- 作者:有点蓝 -- 发布时间:2022/1/6 16:17:00 -- 这些都必须是数值列,不能是字符列 |
|
-- 作者:z769036165 -- 发布时间: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 -- 发布时间:2022/1/6 16:30:00 -- 按下面进行转换,提示“未知错误码” e.DataRow("产品1") = e.DataRow("GX1")/(e.DataRow(Double("G1"))) 注:
|
|
-- 作者:有点蓝 -- 发布时间:2022/1/6 16:34:00 -- 多了个括号 |
|
-- 作者:lgz518 -- 发布时间:2022/1/6 16:45:00 -- e.DataRow("产品1") = e.DataRow("GX1")/e.DataRow(Double("G1")),这个也报错,未知错误码 |
|
-- 作者:lgz518 -- 发布时间: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条记录 |
|
-- 作者:有点蓝 -- 发布时间:2022/1/6 17:03:00 --
|
|
-- 作者:程兴刚 -- 发布时间: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编辑过]
|