以文本方式查看主题 - 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编辑过]
|