Foxtable(狐表)用户栏目专家坐堂 → 使用新版0926删除BIN文件夹重新打开项目会出错


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

主题:使用新版0926删除BIN文件夹重新打开项目会出错

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
使用新版0926删除BIN文件夹重新打开项目会出错  发帖心情 Post By:2019/9/25 19:05:00 [只看该作者]

如题,安装版本后,如果把安装目录下的BIN目录删除过后重新打开就会出错,一直死循环在那里

图片点击可在新窗口打开查看此主题相关图片如下:新版错误.jpg
图片点击可在新窗口打开查看

卸载掉新版安装回0908版本就不会,会是什么原因?
谢谢!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2019/9/25 22:46:00 [只看该作者]

一般都是代码不严谨造成的,勾选"显示详细信息",看看是哪个事件出错,然后分析一下:

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/9/26 22:35:00 [只看该作者]

检查了一下就是在afteropenproject项目属性中新增一个临时表出错的,代码如下:

If DataTables.Contains("TabFid") = False Then
    Dim dtb As New DataTableBuilder("TabFid")
    dtb.AddDef("wn", Gettype(String),16) '窗口名
    dtb.AddDef("Mtb", Gettype(String),16) '主表名
    dtb.AddDef("Curtb", Gettype(String),20) '窗口中的当前活动表名,即Currenttable.Name
    dtb.AddDef("winlb", Gettype(String),8) '窗口类别
    dtb.AddDef("Fid", Gettype(Integer)) '流程号
    dtb.AddDef("Idcol", Gettype(String),10) '单据识别列
    dtb.AddDef("Rcol", Gettype(String),10) '关联列
    dtb.AddDef("LoadFs", Gettype(Integer)) '加载方式 0按默认加载,1为用户自定义加载,,2为通过加载树加载
    dtb.AddDef("Loadlb", Gettype(String),8) '流程节点任务数类别
    dtb.AddDef("CanAddnew", Gettype(Boolean)) '可新增
    dtb.AddDef("CanMD", Gettype(Boolean)) '可修改
    dtb.AddDef("CanCK", Gettype(Boolean)) '可查阅报表
    dtb.AddDef("CanOver", Gettype(Boolean)) '可结案
    dtb.AddDef("CanPrt", Gettype(Boolean)) '可打印
    dtb.AddDef("CanExp", Gettype(Boolean)) '可导出
    dtb.AddDef("CanImport", Gettype(Boolean)) '可导出
    dtb.AddDef("CanReset", Gettype(Boolean)) '可重置
    dtb.AddDef("ShowTree", Gettype(Boolean)) '显示加载筛选目录树
    dtb.AddDef("pg", Gettype(Integer)) '当前页
    dtb.AddDef("pgs", Gettype(Integer)) '总页数
    dtb.AddDef("RowsPage", Gettype(Integer)) '每页加载行数
    dtb.AddDef("RowsTotal", Gettype(Integer)) '总行数
    dtb.AddDef("trRows", Gettype(Integer)) '每页加载树行数
    dtb.AddDef("trPage", Gettype(Integer)) '当前加载树页数
    dtb.AddDef("ldRange", Gettype(String),16) '查阅范围
    dtb.AddDef("Isrange", Gettype(Boolean)) '是否设置了查阅范围
    dtb.AddDef("IsdynamicTr", Gettype(Boolean)) '目录树是否根据条件生成
    dtb.AddDef("sortCol", Gettype(String),32) '排序列
    dtb.AddDef("trcol", Gettype(String),32) '加载树列
    dtb.AddDef("trcolNull", Gettype(String),400) '加上null判断的目录树列
    dtb.AddDef("sqlcol", Gettype(String),200) '需要从sql数据库中提取的目录树列
    dtb.AddDef("ldTreeSort", Gettype(String),32) '加载目录树排序列
    dtb.AddDef("loadorder", Gettype(String),8) '是否降序加载
    dtb.AddDef("ldpagecol", Gettype(String),16) '加载分页依据列
    dtb.AddDef("Loadflt_User", Gettype(String),400) '附件列
    dtb.AddDef("ReferCols", Gettype(String),100) '引用关联表中的其他列(包括表名关联列)
    dtb.AddDef("OtherCols", Gettype(String),64) '引用关联表中的其他列
    dtb.Build()
End If
原来的版本都不会出错,为什么会这样,出错的详细信息如下

System.NullReferenceException: 未将对象引用设置到对象的实例。

   Foxtable.h6.O.O_00oOO.(Object A_0, SelectedIndexChangingEventArgs A_1)

   C1.Win.C1Command.SelectedIndexChangingEventHandler.Invoke(Object sender, SelectedIndexChangingEventArgs e)

   C1.Win.C1Command.C1DockingTab.OnSelectedIndexChanging(SelectedIndexChangingEventArgs e)

   C1.Win.C1Command.C1DockingTab.a(Int32 A_0, Boolean A_1, Boolean A_2, Boolean A_3, Boolean A_4)

   C1.Win.C1Command.C1DockingTab.a(Object A_0, TabPageEventArgs A_1)

   C1.Win.C1Command.C1DockingTabPages.OnPageAdded(Control apage)

   C1.Win.C1Command.PagedControlsCollectionBase.ControlsPageAdded(Control c, Boolean moving)

   C1.Win.C1Command.C1DockingTab.C1DockingTabControlCollection.Add(Control value)

   C1.Win.C1Command.PagedControlsCollectionBase.Add(Object value)

   Foxtable.h6.O.oO_.(String A_0, Boolean A_1, Boolean A_2)

   Foxtable.DataTableBuilder.Build(Boolean OnlyDataTable)

   UserCode.Ar3scHW6xvlRaEDjE()


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2019/9/27 7:59:00 [只看该作者]

测试没有问题,如果你确定有问题,请用例子说话。

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/9/27 10:52:00 [只看该作者]

If DataTables.Contains("TabFid") = False Then
    Dim dtb As New DataTableBuilder("TabFid")
       dtb.AddDef("OtherCols", Gettype(String),64) '引用关联表中的其他列
...
msgbox(1)
    dtb.Build()
End If
msgbox(2)
我测试了下,就是在临时表生成时出错了,请问下dtb.Build这句代码执行后会触发什么事件,我才知道去哪里找出错误
谢谢!

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/27 10:57:00 [只看该作者]

1楼提示应该是切换表事件出错,检查maintablechanging、maintablechanged、currenttablechanged事件

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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/9/27 15:27:00 [只看该作者]

把这三个事件maintablechanging、maintablechanged、currenttablechanged的代码都注释掉了,还是会出错,出错点击确定都一直是死循环,只能强行从任务栏结束任务后又可以打开,现在变成是打开项目后在不关闭的情况下再次在左上角的菜单那里重新选择这个项目再打开运行到5楼说的那里就会出错,如果关闭掉项目再打开就不会,旧版本使用就不会,从升级到0926的就出现了,除了上面三个事件外,  dtb.Build()还会触发哪些事件,我只能逐一查一下了,谢谢!

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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/27 15:33:00 [只看该作者]

1、关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。
2、会触发哪些事件自己测试
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试系统事件的顺序.zip


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


加好友 发短信
等级:八尾狐 帖子:1930 积分:17558 威望:0 精华:0 注册:2014/7/29 19:09:00
  发帖心情 Post By:2019/9/30 9:46:00 [只看该作者]

找不到原因,现在删除BIN目录重新打开不会出错了,但就是有个规律,项目打开后不先关闭的情况下再次重新打开就会出错,如果先关闭再打开就没问题,
这个应该与释放内存有关吧,0908及以前的版本都没这个问题? 

图片点击可在新窗口打开查看此主题相关图片如下:打开出错.jpg
图片点击可在新窗口打开查看


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


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/9/30 10:00:00 [只看该作者]

我测试没有问题哦
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.zip



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