以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  根据不同的权限 加载不同的数据 请教  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=44120)

--  作者:test321
--  发布时间:2013/12/23 16:26:00
--  根据不同的权限 加载不同的数据 请教
如果要 经理组 和拥有审核权限的人   打开窗口的时候 加载复核人为空的列    ,二其他人不加载任何列
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20131223162401.jpg
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2013/12/23 16:30:00
--  
根据权限设置  filter="复核人 is null" 即可

例如 
if user.group="经理" then
    talbes("XX"). filter="复核人 is null"
else
   talbes("XX"). filter="_Identify is null"
end if

--  作者:test321
--  发布时间:2013/12/23 16:47:00
--  

我的外部数据表  初始不加载任何数据 我查询的时候 为什么 就查不出来了呢

If dc.DataCol.IsDate OrElse dc.DataCol.IsBoolean OrElse dc.DataCol.IsNumeric Then  \'如果是时间列,逻辑列,数值列
        Continue For    \'排除
    End If
    If Filter > "" Then
        Filter  = Filter & " Or "
    End If
    Filter = Filter  & "[" & dc.Name & "] Like \'*" & T & "*\'"    \'根据控件值迷糊筛选
    With e.Form.Controls("起始日期")
        If .Value IsNot Nothing Then
            If Filter >"" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "收款日期 >= #" & .Value & "#"
        End If
    End With
    With e.Form.Controls("终止日期")
        If .Value IsNot Nothing Then
            If Filter >"" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "收款日期 <= #" & .Value & "#"
        End If
    End With
    If Filter > "" Then
        Tables("收款登记").Filter = Filter  \'将数据筛选出来
    End If
Next

Tables("收款登记").Filter = Filter  \'将数据筛选出来


--  作者:Bin
--  发布时间:2013/12/23 16:51:00
--  
不加载数据,就没数据,还查询什么?

应该把数据加载出来才对

DataTables("收款登记").LoadFilter=Filter
DataTables("收款登记").load

--  作者:test321
--  发布时间:2013/12/23 16:58:00
--  

Dim T As String = e.form.Controls("textbox1").Value \'定义控件的值
Dim Filter As String  \'定义筛选
For Each dc As Col In Tables("收款登记").Cols \'遍历表的所有列
    If dc.DataCol.IsDate OrElse dc.DataCol.IsBoolean OrElse dc.DataCol.IsNumeric Then  \'如果是时间列,逻辑列,数值列
        Continue For    \'排除
    End If
    If Filter > "" Then
        Filter  = Filter & " Or "
    End If
    Filter = Filter  & "[" & dc.Name & "] Like \'*" & T & "*\'"    \'根据控件值迷糊筛选
    With e.Form.Controls("起始日期")
        If .Value IsNot Nothing Then
            If Filter >"" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "收款日期 >= #" & .Value & "#"
        End If
    End With
    With e.Form.Controls("终止日期")
        If .Value IsNot Nothing Then
            If Filter >"" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "收款日期 <= #" & .Value & "#"
        End If
    End With
    If Filter > "" Then
        Tables("收款登记").Filter = Filter  \'将数据筛选出来
    End If

Next
Tables("收款登记").Filter = Filter  \'将数据筛选出来
DataTables("收款登记").LoadFilter= Filter
DataTables("收款登记").load
Dim s As Table = Tables("收款登记")
Dim g As Subtotalgroup
s.SubtotalGroups.Clear()
s.GroupAboveData = False
s.TreeVisible = False
s.SpillNode = True

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "收款日期"
g.TotalOn = "实收金额,折合人民币"
g.Caption = "{0}月 小计"
g.DateGroup = DateGroupEnum.Month
s.SubtotalGroups.Add(g)

g = New Subtotalgroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "收款日期"
g.TotalOn = "实收金额,折合人民币"
g.Caption = "{0}月 累计"
g.DateGroup = DateGroupEnum.Month
g.upto = True
s.SubtotalGroups.Add(g)
s.Subtotal()


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

--  作者:Bin
--  发布时间:2013/12/23 16:59:00
--  
如果是MSSQL 把井号 改为单引号
--  作者:test321
--  发布时间:2013/12/23 17:01:00
--  

语句没有错误  了   但是查询之后 还是没有数据显示

[此贴子已经被作者于2013-12-23 17:05:58编辑过]

--  作者:有点甜
--  发布时间:2013/12/23 20:20:00
--  
 筛选和加载的条件不能通用

Dim T As String = e.form.Controls("textbox1").Value \'定义控件的值
Dim Filter As String  \'定义筛选
For Each dc As Col In Tables("收款登记").Cols \'遍历表的所有列
    If dc.DataCol.IsDate OrElse dc.DataCol.IsBoolean OrElse dc.DataCol.IsNumeric Then  \'如果是时间列,逻辑列,数值列
        Continue For    \'排除
    End If
    If Filter > "" Then
        Filter  = Filter & " Or "
    End If
    Filter = Filter  & "[" & dc.Name & "] Like \'*" & T & "*\'"    \'根据控件值迷糊筛选
    With e.Form.Controls("起始日期")
        If .Value IsNot Nothing Then
            If Filter >"" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "收款日期 >= #" & .Value & "#"
        End If
    End With
    With e.Form.Controls("终止日期")
        If .Value IsNot Nothing Then
            If Filter >"" Then
                Filter = Filter & " And "
            End If
            Filter = Filter & "收款日期 <= #" & .Value & "#"
        End If
    End With
    If Filter > "" Then
        Tables("收款登记").Filter = Filter  \'将数据筛选出来
    End If

Next
Tables("收款登记").Filter = Filter  \'将数据筛选出来
DataTables("收款登记").LoadFilter= Filter.replace("#", "\'").replace("*", "%")
DataTables("收款登记").load