以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]双精度的nothing等于空字符“” :已解决,是电脑问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=102882) |
||||
-- 作者:shenyl0211 -- 发布时间:2017/6/27 11:28:00 -- [求助]双精度的nothing等于空字符“” :已解决,是电脑问题 DataColChanging事件代码: If e.DataCol.IsNumeric Then CurrentTableChanged事件代码: Case "项目借款" Dim ta As New DropTreeBuilder ta.SourceTable = DataTables("项目管理") ta.TreeCols = "部门名称|借款人|项目名称" ta.SourceCols = "项目名称|合同额|营业额|责任成本|匹配成本|支出合计|到款总计|借款余额|项目经理" \'指定数据来源列 ta.ReceiveCols = "项目名称|合同额|完成产值|预算成本|匹配成本|开累支出|累计到款|借款余额|项目经理" \'指定数据接收列 ta.TreeSort = "部门名称,借款人,项目名称" CurrentTable.Cols("项目名称").DropTree = ta.Build() 问题现象: 在项目借款表中选择项目名称时,如果第一次选择的项目借款余额不为0,则改选借款余额为0的项目时,会出现下列错误,且原来的借款余额不会清0。实际上,所有的数值列引用都有这个问题。 从字符串 "" 到类型 "Double" 的转换无效 解决办法: 1、修改代码为:If e.DataCol.IsNumeric andalso e.DataCol.name<>"借款余额" Then 但引用的数值列越多,上述代码就越长,数据表中显示0值就越多,因而越难看。 2、借款余额列为空白的改为数值0 求助: 这是bug吗? [此贴子已经被作者于2017/6/28 15:15:06编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/6/27 12:35:00 -- If e.DataCol.IsNumeric Then |
||||
-- 作者:shenyl0211 -- 发布时间:2017/6/27 14:15:00 -- 对于数值列, val(e.NewValue) 与e.NewValue是一样的。 所以,即使修改为2楼代码,错误提示还是一样的。
|
||||
-- 作者:有点色 -- 发布时间:2017/6/27 16:00:00 -- 测试,不会报错。请上传实例测试。 |
||||
-- 作者:shenyl0211 -- 发布时间:2017/6/27 20:49:00 -- 多个数值表达式列的表达式中用到了null,而null被视为字符串,所以,不得不弃用null,显示所有的0,虽然不好看,但至少可以让这个功能完美了。 |
||||
-- 作者:有点蓝 -- 发布时间:2017/6/27 21:24:00 -- 上实例测试 |
||||
-- 作者:shenyl0211 -- 发布时间:2017/6/28 12:05:00 -- 表A为原始数据表,其<营业额总计>为包含null的公式 表B的<项目名称>列中选数据齐全的“项目1”没问题,选缺少数据的“项目2”就有问题
[此贴子已经被作者于2017/6/28 12:07:49编辑过]
|
||||
-- 作者:有点色 -- 发布时间:2017/6/28 12:35:00 -- 你给的例子,测试没问题。
再有就是,全局表事件需要开启的 DataTables("表B").GlobalHandler.DataColChanging = True |
||||
-- 作者:shenyl0211 -- 发布时间:2017/6/28 15:14:00 -- 谢谢。我现在测试也正常了,原来的一些其它问题也突然没了。 |