以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 使用新版0926删除BIN文件夹重新打开项目会出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=141285) |
||||
-- 作者:happyft -- 发布时间:2019/9/25 19:05:00 -- 使用新版0926删除BIN文件夹重新打开项目会出错 如题,安装版本后,如果把安装目录下的BIN目录删除过后重新打开就会出错,一直死循环在那里 |
||||
-- 作者:狐狸爸爸 -- 发布时间:2019/9/25 22:46:00 -- 一般都是代码不严谨造成的,勾选"显示详细信息",看看是哪个事件出错,然后分析一下: |
||||
-- 作者:HappyFt -- 发布时间: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() |
||||
-- 作者:狐狸爸爸 -- 发布时间:2019/9/27 7:59:00 -- 测试没有问题,如果你确定有问题,请用例子说话。 |
||||
-- 作者:HappyFt -- 发布时间: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这句代码执行后会触发什么事件,我才知道去哪里找出错误 谢谢!
|
||||
-- 作者:有点蓝 -- 发布时间:2019/9/27 10:57:00 -- 1楼提示应该是切换表事件出错,检查maintablechanging、maintablechanged、currenttablechanged事件 |
||||
-- 作者:HappyFt -- 发布时间:2019/9/27 15:27:00 -- 把这三个事件maintablechanging、maintablechanged、currenttablechanged的代码都注释掉了,还是会出错,出错点击确定都一直是死循环,只能强行从任务栏结束任务后又可以打开,现在变成是打开项目后在不关闭的情况下再次在左上角的菜单那里重新选择这个项目再打开运行到5楼说的那里就会出错,如果关闭掉项目再打开就不会,旧版本使用就不会,从升级到0926的就出现了,除了上面三个事件外, dtb.Build()还会触发哪些事件,我只能逐一查一下了,谢谢! |
||||
-- 作者:有点蓝 -- 发布时间:2019/9/27 15:33:00 -- 1、关闭退出项目,删除项目所在的文件夹里的bin目录,然后重启项目试试。 2、会触发哪些事件自己测试
|
||||
-- 作者:HappyFt -- 发布时间:2019/9/30 9:46:00 -- 找不到原因,现在删除BIN目录重新打开不会出错了,但就是有个规律,项目打开后不先关闭的情况下再次重新打开就会出错,如果先关闭再打开就没问题, 这个应该与释放内存有关吧,0908及以前的版本都没这个问题?
|
||||
-- 作者:有点蓝 -- 发布时间:2019/9/30 10:00:00 -- 我测试没有问题哦 |