Foxtable(狐表)用户栏目专家坐堂 → [求助]代码执行中会报出错误


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

主题:[求助]代码执行中会报出错误

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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/7/15 15:45:00 [只看该作者]

我调整了combine的代码,统一改用groupbuilder,仍然会报出错误。
项目和数据库如下
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:pm2018.zip



操作步骤:
1、先依次在命令窗口执行随机增加TbWL表数据、随机增加TbModD、随机增加TbModWBSD这三个自定义函数
2、选中TbMod表。点击第一行的C列,会依次打开多个代码执行的提示窗口,直到Mod窗口打开,然后关闭窗口
3、选中TbMod表。点击第二行的C列,会依次打开多个代码执行的提示窗口,直到Mod窗口打开,然后关闭窗口
4、再点第三行的C列,再点第4行的C列,如果能直到第7行都能顺利执行打开Mod窗口,那可能是我的电脑的问题。
我这里执行到第3行的时候会报错,再点第4行和第5行,又顺利,再点第6行,就会报错。点第7行和第1行,又顺利,再点第2行会报错,点第3行会报错,而且报错的内容是完全一样的。检查TbWBS表,只有第一行的Temp列被赋值为true,其它的行均未赋值。

报错窗口如下

图片点击可在新窗口打开查看此主题相关图片如下:给tbwbs的temp列赋值报错.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2018/7/15 18:38:52编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/7/15 15:46:00 [只看该作者]

然后TbWBS表的Temp列赋值明显有问题

图片点击可在新窗口打开查看此主题相关图片如下:tbwbs的temp列仅有第一行赋值了.png
图片点击可在新窗口打开查看
代码未执行完成,所有的表行号均不可见

图片点击可在新窗口打开查看此主题相关图片如下:程序未正确执行,所有表的行号都不可见.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/7/15 16:38:00 [只看该作者]

Mod窗口的button4事件中,如果把以下代码直接替换为:
            'MessageBox.Show("开始构建UnitWBS")
            'Functions.Execute("UnitWBS",4,1)
            '
            'log & = "UnitWBS耗时: " & (Date.Now - st).TotalSeconds & "秒" &  vbcrlf
            '
            '
            ''MessageBox.Show("开始填充WBS")    '只要加入这段代码,就会运行报错.不知什么原因
            'systemready = False
            'Dim h As New Filler
            'h.SourceTable = DataTables("UnitWBS") '指定数据来源
            'h.SourceCols = "ID,ModA,FMA" '指定数据来源列
            'h.DataTable = DataTables("WBSL") '指定数据接收表
            'h.DataCols = "ID,ModA,FMA" '指定数据接收
            'h.ExcludeExistValue = True
            ''h.Filter = "Temp = true"
            'h.Fill() '填充数据
            'systemready = True


            systemready = False    ’这是替换代码,不用任何方法了,直接从TbWBS表中filler数据进入到WBSL表中,运行也会报错。但如果把这段代码注释掉,运行就会正常。所以,应当不是combine的问题。
            Dim h As New Filler
            h.SourceTable = DataTables("TbWBS") '指定数据来源
            h.SourceCols = "ID" '指定数据来源列
            h.DataTable = DataTables("WBSL") '指定数据接收表
            h.DataCols = "ID" '指定数据接收
            h.ExcludeExistValue = True
            h.Filter = "Temp = true"          ‘再测试,把这个条件去掉,程序运行就不会出现错误。小结就是:只要使用到被赋值的Temp列,必然报错,一行不报错,多次运行之后,必然报错
            h.Fill() '填充数据
            systemready = True

[此贴子已经被作者于2018/7/15 18:35:52编辑过]

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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/7/15 18:58:00 [只看该作者]

是不是增加的临时列不能这样用啊?

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


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

就你给的例子,按照你的步骤测试,可以正常弹出窗口,没有报错。

 

你换一台电脑测试一下吧。


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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/7/15 22:33:00 [只看该作者]

点第一行,是不会报错的,要点多行才行。我的7行中,才出现2次报错。
我点第一行,从来没报过错
[此贴子已经被作者于2018/7/15 22:34:02编辑过]

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


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

以下是引用chnfo在2018/7/15 22:33:00的发言:
点第一行,是不会报错的,要点多行才行。我的7行中,才出现2次报错。
我点第一行,从来没报过错
[此贴子已经被作者于2018/7/15 22:34:02编辑过]

 

从1点到7,从7点到1,都没有报错过......


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


加好友 发短信
等级:九尾狐 帖子:2191 积分:18007 威望:0 精华:0 注册:2011/11/26 20:21:00
  发帖心情 Post By:2018/7/16 8:06:00 [只看该作者]

不可能啊,我这里换了一台电脑,还是会报错,这个问题都折腾好久了。
31楼的程序有更新,修正了随机生成数据的代码。
正常情况下,最后窗口打开的时候,界面上加载的数据表都应当在15000左右。
如果有以下现象出现,肯定是有问题的
1、窗口界面的右边表的数据是空白
2、关闭窗口之前,TBWBS、TBMOD、TBMODD等数据表的行号不可见
3、关闭窗口之前,TBWBS只第一行的TEMP被赋值为TRUE。

因为关闭报错弹窗,代码仍会执行到最后窗口打开。

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


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

没,问,题,不会报错。升级到最新版测试。


 回到顶部
总数 39 上一页 1 2 3 4