大佬您好,咱们现在使用的设计器是哪一个版本,因为咱们没有在帖子中提到咱们当前实现的设计器版本,所以我们一般在做demo的时候,会以官方发布的最新版为准。
因为咱们还是没有说咱们现在设计器的版本,那么我就简单说一下原理:
1、因为组织结构是树形的数据,而表格的查询做不到树形查询,能做的,只有等于,不等于,大于,小于,在里面等逻辑运算
2、所以需要先,从树形的组织结构数据中获取到,将要查询的所有组织Id
3、所以第一步操作就是,根据选择的树节点获取到当前选择的组织Id,以及下面子节点的组织Id
4、表格设置查询条件,做组织Id,在查询的结果里
总共有多重思路,咱们可以参考一下
1、借助现有控件
不自己做查询,而是借助组件本身就有的功能,比如EL-树形控件,有一个功能,开启多选,当开启多选之后,本身就可以获取当前节点以及子节点
2、递归查询
服务端命令支持自己调用自己,那么就可以,服务端命令实现递归查询的思路,这种方式就可以比较简单的获取当前节点及子节点Id,不过这里有一个前提就是我们会使用递归查询
3、SQL查询,也是前面版主给出的方案,具体SQL如下,咱们可以参考一下
- WITH RECURSIVE 查询1 AS (
- SELECT [组织Id], [组织名], [父节点Id]
- FROM [组织信息视图]
- WHERE [组织Id] = @组织ID
- UNION ALL
- SELECT c.[组织Id], c.[组织名], c.[父节点Id]
- FROM [组织信息视图] c
- JOIN 查询1 d ON c.[父节点Id] = d.[组织Id]
- )
- SELECT 组织ID FROM 查询1;
复制代码 最终再通过Join将数组转成字符串就可以使用了
|