以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在用户表中只显示本级单位和下级单位  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=124146)

--  作者:susu312
--  发布时间:2018/8/31 11:33:00
--  在用户表中只显示本级单位和下级单位

需求:在用户表中显示本级单位和下级单位的用户信息

 

DataTables("user").LoadFilter = "organName = \'" & _UserOrgan & "\'"   
DataTables("user").LoadTop = Nothing
DataTables("user").load

 

比如,_UserOrgan =榆林市中心支行,登录后,希望看到榆林市中心支行和所有下属县级行的用户

 

那么这时候这个loadFilter如何实现,主要是数据库的用户表里只有organName字段,

 

loadFilter=本级单位名字=_UserOrgan 或者  上级单位名称 = =_UserOrgan 的?


--  作者:有点甜
--  发布时间:2018/8/31 11:39:00
--  

1、你要记录全路径啊

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=123221&skin=0

 

2、然后写

 

DataTables("user").LoadFilter = "全路径 like \'%" & _UserOrgan & "%\'"   


--  作者:susu312
--  发布时间:2018/8/31 12:49:00
--  
以下是引用有点甜在2018/8/31 11:39:00的发言:

1、你要记录全路径啊

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=123221&skin=0

 

2、然后写

 

DataTables("user").LoadFilter = "全路径 like \'%" & _UserOrgan & "%\'"   

 


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

 

老师,全路径的话,就相当于把所有的都加载了,比如登录单位是榆林市中心支行,希望加载的是榆林市中心支行和它下属单位的,但它吧上级单位也显示出来了,

 

2、老师,,对于user表中的每一行中的organName字段,如何写代码?

[此贴子已经被作者于2018/8/31 13:22:38编辑过]

--  作者:有点甜
--  发布时间:2018/8/31 14:33:00
--  

榆林支行的全路径是什么?比如是 005\\003

 

那么就合成条件,如

 

DataTables("user").LoadFilter = "全路径 like \'005\\003%\'"   

 

或者

 

DataTables("user").LoadFilter = "全路径 like \'%003%\'"   


--  作者:有点甜
--  发布时间:2018/8/31 14:33:00
--  
不会做上传具体项目测试
--  作者:susu312
--  发布时间:2018/8/31 15:01:00
--  
以下是引用有点甜在2018/8/31 14:33:00的发言:
不会做上传具体项目测试

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目21.table

 

老师,

1、如果是西安管理员,则显示 西安和榆林的用户,

2、如果是榆林的管理员,则显示榆林市绥德的用户,

3、如果新增一个用户,它的辅助列为空,必须要重置单位那一列才行,可以让它新增进去时就把那列也写上么?

榆林的全路径是005/003,如何只提取003

[此贴子已经被作者于2018/8/31 15:03:16编辑过]

--  作者:有点甜
--  发布时间:2018/8/31 15:26:00
--  

你给的例子别人根本无法测试。

 

1、根据 _UserOrgan 查找find到对应的行,找到路径或者全路径 005\\003

 

2、执行代码 DataTables("user").LoadFilter = "全路径 like \'005\\003%\'"   

 

 


--  作者:susu312
--  发布时间:2018/8/31 16:13:00
--  
以下是引用有点甜在2018/8/31 15:26:00的发言:

你给的例子别人根本无法测试。

 

1、根据 _UserOrgan 查找find到对应的行,找到路径或者全路径 005\\003

 

2、执行代码 DataTables("user").LoadFilter = "全路径 like \'005\\003%\'"   

 

 

如何让新增用户也直接把 辅助列的值给写了,现在只有没一行重置,那个辅助列才有值?


--  作者:有点甜
--  发布时间:2018/8/31 16:15:00
--  
以下是引用susu312在2018/8/31 16:13:00的发言:

如何让新增用户也直接把 辅助列的值给写了,现在只有没一行重置,那个辅助列才有值?

 

跨表引用 http://www.foxtable.com/webhelp/scr/1451.htm

 


--  作者:susu312
--  发布时间:2018/8/31 16:54:00
--  
以下是引用有点甜在2018/8/31 16:15:00的发言:

 

跨表引用 http://www.foxtable.com/webhelp/scr/1451.htm

 

 

老师,我在用户表的 datacolchanged事件中写如下代码,但是新增用户的辅助列还是为空 ,单位里面是存在新增用户的所属单位的

 

If e.DataCol.Name = "OrganName" Then  \'如果内容发生变动的是单位列
    If e.NewValue Is Nothing Then  \'如果新值是空白,也就是单位列的内容为空
       MessageBox.Show("jjjjj")
        e.DataRow("fuZhu") = Nothing \'那么清空辅助列的内容
    Else
         Dim dr  As  DataRow
         MessageBox.Show("zzz")
          \'否则在单位表查找同名的单位行,将找到的行赋值给变量dr
         dr =  DataTables("organList").Find("[organName] = \'" & e.NewValue &  "\'")
         If dr IsNot Nothing Then  \'如果找到了同名的单位行,也就是dr不是Nothing
             MessageBox.Show("xxxx")
             e.DataRow("fuZhu") = dr("fuZhu")
         End  If
     End  If
 End If

 

我在例子里测试时可以的,但是在我的项目中就不行,用新增增窗口添加人员,感觉都触发不了datacolchanged事件,不知咋回事

 

1、我新建一个项目 ,里面简单做了一个类似的,然后在表上新增一行时,那个辅助列就可以显示出来

2、但是,我在自己的项目中,通过窗口新增一个用户时,辅助列就么有显示出来

 

 

对了,我项目中,新增用户,是通过sql语句插入到库里面的 ,是不是这个就显示不出来?

[此贴子已经被作者于2018/8/31 17:24:35编辑过]