Foxtable(狐表)用户栏目专家坐堂 → 在不同用户加载不同行后 加载树无法用?


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

主题:在不同用户加载不同行后 加载树无法用?

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


加好友 发短信
等级:童狐 帖子:236 积分:1881 威望:0 精华:0 注册:2013/11/7 14:40:00
在不同用户加载不同行后 加载树无法用?  发帖心情 Post By: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)

我试过 发现按照  销售员的名字登录是无法显示的,而 开发者登录的话,在“应用窗口”中可以显示加载树。

哪位大神来解答,不甚感激!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/19 22:49:00 [只看该作者]

 是不是没有对应的数据?必须有数据才会生成树的。

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


加好友 发短信
等级:童狐 帖子:236 积分:1881 威望:0 精华:0 注册:2013/11/7 14:40:00
在不同用户加载不同行后 加载树无法用?  发帖心情 Post By:2014/10/20 8:33:00 [只看该作者]

谢谢有点甜。
通过加载过滤后的的 table,应该 “大区”和“销售员” 是相同的。其他的“客户单位”,“合同编号“是不同的
但是treeview1 里面的buildtree,应该针对的是 datatable的,是不是这个出了问题?



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


加好友 发短信
等级:童狐 帖子:236 积分:1881 威望:0 精华:0 注册:2013/11/7 14:40:00
在不同用户加载不同行后 加载树无法用?  发帖心情 Post By: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
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/10/20 8:49:00 [只看该作者]

不加载,就没内容,自然就没东西可生成

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


加好友 发短信
等级:童狐 帖子:236 积分:1881 威望:0 精华:0 注册:2013/11/7 14:40:00
  发帖心情 Post By: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 & " ' " )

这样目录树显示和主表加载同步了。

谢谢各位!

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/20 9:04:00 [只看该作者]

 回复楼上,如果你用1楼的代码,是不会出现你那种问题的。

 

 如果有问题,就肯定是你哪里有改变了loadFilter和Load了


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


加好友 发短信
等级:童狐 帖子:236 积分:1881 威望:0 精华:0 注册:2013/11/7 14:40:00
  发帖心情 Post By:2014/10/20 9:08:00 [只看该作者]

出现新的问题,发现 节点双击会出现如下错误:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.9.23.1
错误所在事件:窗口,合同管理,TreeView1,NodeMouseDoubleClick
详细错误信息:
此行已从表中移除并且没有任何数据。BeginEdit() 将允许在此行中创建新数据


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


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/20 9:23:00 [只看该作者]

 当你把生成目录树的表格重新load一次的时候,就不能再使用e.node.datarow了,因为那一行已经丢失了。

 

 具体问题,请上传例子


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


加好友 发短信
等级:童狐 帖子:236 积分:1881 威望:0 精华:0 注册:2013/11/7 14:40:00
  发帖心情 Post By:2014/10/20 10:08:00 [只看该作者]

嗯,我整理一下,是上传附件吗?
另外,我估计要实现这个功能,需要全部load,然后设置“不可见”逻辑上会更容易。下午看看。

谢谢!

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