以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何生成一对多表的筛选条件? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=161161) |
||||||||||||||||||||||||||||||||
-- 作者:guosheng -- 发布时间:2021/3/8 17:21:00 -- 如何生成一对多表的筛选条件? 表1 和表2为1对多关系,表2和表3为1对多。 如何获取 张三 对应的所有角色的某个业务需要的筛选条件啊? 即:拼接以下条件,(部门=‘行政部’ and (角色=‘工程师’ or 角色=‘资料员’) ) or (部门=\'财务部\' and (角色=\'前台\') ) 表1
表2
表3
|
||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2021/3/8 17:28:00 -- 要对哪个表做筛选? |
||||||||||||||||||||||||||||||||
-- 作者:guosheng -- 发布时间:2021/3/8 17:51:00 -- 是表4。主要想根据用户信息,很方便的生成筛选条件啊,以便供表4使用啊。 表4的字段有,部门 ,角色 及其他字段。是要筛选出当前用户,例如筛选出 张三 对应所有部门及部门对应角色的所有行。 |
||||||||||||||||||||||||||||||||
-- 作者:有点蓝 -- 发布时间:2021/3/8 20:17:00 -- dim dr as datarow = datatables("表1").find("姓名=\'张三\'") if dr isnot nothing then dim s1 as string = DataTables("表2").GetComboListString("部门","关联人员ID = \'" & dr("人员ID") & "\'") dim s2 as string = DataTables("表2").GetComboListString("ID","关联人员ID = \'" & dr("人员ID") & "\'") dim s3 as string = DataTables("表3").GetComboListString("角色","关联部门ID in (\'" & s2.replace("|","\',\'") & "\')") Tables("表3").Filter = "部门 in (\'" & s1.replace("|","\',\'") & "\') or 角色 in (\'" & s3.replace("|","\',\'") & "\')" end if |