以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]MainTableChanged项目事件中创建目录树的小bug,请狐爸解决  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=38300)

--  作者:shenyl0211
--  发布时间:2013/7/25 12:24:00
--  [求助]MainTableChanged项目事件中创建目录树的小bug,请狐爸解决
1、字符型列“外聘”有的人为“是”,而有的人为空白。
2、现在当前行选择了“外聘”为“是”的人,“外聘”列正常显示为“是”。
3、要把当前行改为“外聘”不为“是”的人,或原来“外聘”为“是”是错误的,在修改“人员管理”表后希望重选该人后清除“外聘”列中的“是”。
这时就发现小bug了:在下列代码中,如果采用1、2两行(“外聘”在中间),则“是”会被清除,而采用3、4行(外聘在最后)就不会清除“是”,如果“外聘“放在前面错误就更大了。
这种现象与列属性中设置目录树列表是一样的。
请狐爸解决。

If MainTable.Name = "考勤管理"  Then
    Tables("考勤管理").sort="部门名称,年度,月份,姓名"
    Dim ta As New DropTreeBuilder
    ta.SourceTable = DataTables("人员管理") \'指定目录树表
    ta.TreeCols = "部门名称|员工姓名" \'指定用于生成目录树的列
1    ta.SourceCols = "部门名称|外聘|员工姓名" \'指定数据来源列
2    ta.ReceiveCols = "部门名称|外聘|姓名" \'指定数据接收列
3    ta.SourceCols = "部门名称|员工姓名|外聘" \'指定数据来源列
4    ta.ReceiveCols = "部门名称|姓名|外聘" \'指定数据接收列
    If _userroles<>"开发者" AndAlso _userroles<>"管理者" AndAlso _userroles<>"审核人员" AndAlso _usergroup<>"" Then
        ta.TreeFilter="[部门名称] in (" & _usergroup & ")"
    End If
    Tables("考勤管理").Cols("部门名称").DropTree = ta.Build()
end if

--  作者:Bin
--  发布时间:2013/7/25 12:26:00
--  
这种问题最好上个例子比较直观.
--  作者:shenyl0211
--  发布时间:2013/7/25 14:58:00
--  
超级版主:这么简单的也要上个例子?
我改内容吧!
表B:第一列、第二列、第三列  3列
1行        A、B、是
2行        A、C、空白
表A: 第一列、第二列、第三列
MainTableChanged事件:
If MainTable.Name = "表A"  Then
    Dim ta As New DropTreeBuilder
    ta.SourceTable = DataTables("表B") \'指定目录树表
    ta.TreeCols = "第一列|第二列" \'指定用于生成目录树的列
1    ta.SourceCols = "第一列|第三列|第二列" \'指定数据来源列
2    ta.ReceiveCols = "第一列|第三列|第二列" \'指定数据接收列
3    ta.SourceCols = "第一列|第二列|第三列" \'指定数据来源列
4    ta.ReceiveCols = "第一列|第二列|第三列" \'指定数据接收列
      Tables("表A").Cols("第一列").DropTree = ta.Build()
end if
如果用3、4行代码,则在表A第一行选择输入B,第三列为“是”,再在第一行选择输入C,第三列的“是”不会变成空白
如果用1、2行代码,则在表A第一行选择输入B,第三列为“是”,再在第一行选择输入C,第三列的“是”会变成空白
记得要切换表格让目录树更新

--  作者:Bin
--  发布时间:2013/7/25 15:01:00
--  
既然简单 你做个例子不是很快吗?

本人愚钝感觉看起来确实很费劲,有例子直观一点.

--  作者:狐狸爸爸
--  发布时间:2013/7/25 15:30:00
--  

呵呵,我按照3楼说的测试了一下,似乎确实有问题,下次更新前我检查一下。


--  作者:shenyl0211
--  发布时间:2013/7/25 15:32:00
--  
谢谢狐爸!因为帮助的例子是区号、邮编,每一行的数据是完整的,没有空白,所以不会发现问题。
[此贴子已经被作者于2013-7-25 15:36:45编辑过]