以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 在不同用户加载不同行后 加载树无法用? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=58563) |
-- 作者:hawkgo -- 发布时间:2014/10/19 22:43:00 -- 在不同用户加载不同行后 加载树无法用? 在 项目属性 loadusersetting 加入: If User.Type = UserTypeEnum.Administrator Or User.Type = UserTypeEnum.Developer Then DataTables("合同管理_主列表").LoadFilter = "" Else DataTables("合同管理_主列表").LoadFilter = "销售姓名 = \'" & User.Name & "\'" End If DataTables("合同管理_主列表").Load() 在合同管理_主列表 的 treeview1 控件上 无法显示 加载树?为什么? 这是表的主窗口 afterload的代码: Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree("合同管理_主列表", "大区|销售姓名|客户单位|客户姓名|合同编号") trv.Nodes.Insert("显示所有行",0) 我试过 发现按照 销售员的名字登录是无法显示的,而 开发者登录的话,在“应用窗口”中可以显示加载树。 哪位大神来解答,不甚感激!
|
-- 作者:有点甜 -- 发布时间:2014/10/19 22:49:00 -- 是不是没有对应的数据?必须有数据才会生成树的。 |
-- 作者:hawkgo -- 发布时间:2014/10/20 8:33:00 -- 在不同用户加载不同行后 加载树无法用? 谢谢有点甜。 通过加载过滤后的的 table,应该 “大区”和“销售员” 是相同的。其他的“客户单位”,“合同编号“是不同的 但是treeview1 里面的buildtree,应该针对的是 datatable的,是不是这个出了问题? |
-- 作者:hawkgo -- 发布时间:2014/10/20 8:39:00 -- 在不同用户加载不同行后 加载树无法用? @有点甜 在 配合不同用户登录,显示自己建立的行时,前面在 beforeloadinnertable 需要加入 If e.DataTableName = "合同管理_主列表" Then e.Filter = "[_Identify] Is Null" End If 这样”合同管理_主列表“就不会自动加载, 转到loadusersetting 按条件加载 是否这个和 加载树冲突?
[此贴子已经被作者于2014-10-20 8:41:54编辑过]
|
-- 作者:Bin -- 发布时间:2014/10/20 8:49:00 -- 不加载,就没内容,自然就没东西可生成 |
-- 作者:hawkgo -- 发布时间:2014/10/20 8:56:00 -- 刚才试着 注释掉:项目属性中 beforeloadinnertable 里面的 If e.DataTableName = "合同管理_主列表" Then e.Filter = "[_Identify] Is Null" End If 后,果然 加载树可以正常显示,但是显示的是 datatable,即没有经过任何筛选的datatable的所有数据, 表中,afterload 的 代码: Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1") trv.BuildTree("合同管理_主列表", "大区|销售姓名|客户单位|客户姓名|合同编号") trv.Nodes.Insert("显示所有行",0) buildtree ,是否可以加入 筛选条件, 果然可以! 哈哈 trv.BuildTree("合同管理_主列表", "大区|销售姓名|客户单位|客户姓名|合同编号","销售姓名=\' "& user.name & " \' " ) 这样目录树显示和主表加载同步了。 谢谢各位! |
-- 作者:有点甜 -- 发布时间:2014/10/20 9:04:00 -- 回复楼上,如果你用1楼的代码,是不会出现你那种问题的。
如果有问题,就肯定是你哪里有改变了loadFilter和Load了 |
-- 作者:hawkgo -- 发布时间:2014/10/20 9:08:00 -- 出现新的问题,发现 节点双击会出现如下错误: .NET Framework 版本:2.0.50727.5485 Foxtable 版本:2014.9.23.1 错误所在事件:窗口,合同管理,TreeView1,NodeMouseDoubleClick 详细错误信息: 此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据 |
-- 作者:有点甜 -- 发布时间:2014/10/20 9:23:00 -- 当你把生成目录树的表格重新load一次的时候,就不能再使用e.node.datarow了,因为那一行已经丢失了。
具体问题,请上传例子 |
-- 作者:hawkgo -- 发布时间:2014/10/20 10:08:00 -- 嗯,我整理一下,是上传附件吗? 另外,我估计要实现这个功能,需要全部load,然后设置“不可见”逻辑上会更容易。下午看看。 谢谢!
|