以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 订单表的数据加载是否可以用户表的分组进行加载? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=164226) |
||||
-- 作者:lgz518 -- 发布时间:2021/4/30 11:08:00 -- 订单表的数据加载是否可以用户表的分组进行加载? Dim y As Integer = Date.Today.Year Dim dt1 As New Date(y, 1, 1) Dim dt2 As New Date(y, 12, 31) Dim Filter As String Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "#" DataTables("订单").LoadFilter = Filter DataTables("订单").Load() 问题:上面是加载代码,需求是《订单表》根据《用户表》的“分组”的用户进行加载, 如果当前用户是“分组”为销售经理,那就是加载销售部全部订单; 如果当前用户是“分组”为销售主管A,那就是只加载销售部销售主管A所属的订单; 如果当前用户是“分组”为录入者,那就是只加载销售部录入者所属的订单; 关键问题,订单表中只有录入者字段,如何实现上面需求?
|
||||
-- 作者:有点蓝 -- 发布时间:2021/4/30 11:29:00 -- 定义一个变量,如:dim s as string 如果当前用户是“分组”为销售经理,那就是加载销售部全部订单; 先从用户表查询获取销售部所有员工,比如结果:s =“张三,李四,王五” 如果当前用户是“分组”为销售主管A,那就是只加载销售部销售主管A所属的订单; 先从用户表查询获取销售主管A所有员工,比如结果:s =“张三,李四” 如果当前用户是“分组”为录入者,那就是只加载销售部录入者所属的订单; 获取用户名称,比如:s =user.name Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "# and 录入者 in(\'" & s.replace(",","\',\'") & "\')"
|
||||
-- 作者:lgz518 -- 发布时间:2021/4/30 13:10:00 -- Dim y As Integer = Date.Today.Year Dim dt1 As New Date(y, 1, 1) Dim dt2 As New Date(y, 12, 31) Dim Filter As String Dim s As String s =user.name Select Case User.Group Case "销售经理" Dim dr1 As DataRow = Tables("订单").Current.DataRow Dim dr2 As DataRow dr2 = DataTables("用户").Find("[录入者] = \'" & dr1(" s") & "\'And [分组] = \'" & dr1("分组") & "\'") Case "销售主管A", "销售主管B", "销售主管C", "销售主管D" Dim dr1 As DataRow = Tables("订单").Current.DataRow Dim dr2 As DataRow dr2 = DataTables("用户").Find("[录入者] = \'" & dr1(" s") & "\'And [分组] = \'" & dr1("分组") & "\'") Case "录入者" s =user.name End Select Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "# and 录入者 in(\'" & s.replace(",","\',\'") & "\')" DataTables("订单").LoadFilter = Filter DataTables("订单").Load() 没报错,但没加载
|
||||
-- 作者:有点蓝 -- 发布时间:2021/4/30 13:48:00 -- Case "销售经理" Dim dr1 As DataRow = Tables("订单").Current.DataRow Dim dr2 As DataRow s = DataTables("用户").GetComboListString("录入者","[分组] = \'" & dr1("分组") & "\'") …… Filter = "日期 >= #" & dt1 & "# And 日期 <= #" & dt2 & "# and 录入者 in(\'" & s.replace("|","\',\'") & "\')" |
||||
-- 作者:lgz518 -- 发布时间:2021/4/30 14:08:00 -- 还是无加载数据,上实例,帮改一下,谢谢 |
||||
-- 作者:有点蓝 -- 发布时间:2021/4/30 14:38:00 --
|
||||
-- 作者:lgz518 -- 发布时间:2021/5/22 10:58:00 -- 老师, 1,下载您6楼的实例测试一下,之前测试,窗口上能加载相应的数据,但今天再测试,没报错,那个调试也没问题,就是窗口不显示数据,这个什么原因? |
||||
-- 作者:有点蓝 -- 发布时间:2021/5/22 11:03:00 -- 刚下载6楼项目测试没有问题。 |
||||
-- 作者:lgz518 -- 发布时间:2021/5/22 11:09:00 -- 我也重新下载测试,也没有问题,但之前下载测试数据显示不出来,我上传之前下载实例,您帮看一下是哪里出问题,谢谢? |
||||
-- 作者:有点蓝 -- 发布时间:2021/5/22 11:25:00 -- 原因:http://www.foxtable.com/webhelp/topics/1273.htm,单元格里是全角的逗号 注意对比一下2个项目事件代码的第一行
|