以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求解多条件筛选统计 代码!!(有图)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=16385)

--  作者:hongshizijun
--  发布时间:2012/2/12 11:09:00
--  求解多条件筛选统计 代码!!(有图)

我做了个小项目

建了个表


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

 
假别弄了个下拉
 


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

 

又弄了个窗口

 


 


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

 


 

缺勤统计按钮的代码是
Dim g As New CrossTableBuilder("缺勤统计表", DataTables("员工缺勤统计表"))
Dim Filter As String
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "姓名 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("TextBox2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "隶属类别 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("TextBox3")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "假别 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("DateTimePicker1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "请假日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("DateTimePicker2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "请假日期<= #" & .Value & "#"
    End If
End With
g.Filter = Filter
g.HGroups.AddDef("姓名")
g.VGroups.AddDef("假别")
g.Totals.AddDef("请假时间", "请假时间")
g.Build()
MainTable = Tables("缺勤统计表")
 
 
我这个功能就是能对“姓名”“隶属类别”“假别”“起止时间”,进行筛选后统计  员工假别的总时间
 
现在我想在窗口上实现的功能是  多值 假别 筛选  后统计  员工假别的总时间  
例如 我做的那个只能对   单一“假别” 或  所有“假别” 进行统计    现在想实现的就是  可以在窗口对 “病假” 和“计生” 的统计   就是可以对任意组合的“假别”统计
 
求代码!!!
先谢谢!

 

前几次图看不到!!!

[此贴子已经被作者于2012-2-12 11:10:40编辑过]

--  作者:czy
--  发布时间:2012/2/12 12:08:00
--  

下次提这样的问题请上传附件,否则很难得到回复的。

将原窗口中的textbox3控件换成CheckedComboBox1。


Dim Filter As String
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "姓名 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("TextBox2")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "隶属类别 = \'" & .Value & "\'"
    End If
End With
With e.Form.Controls("CheckedComboBox1")
    If .Value IsNot Nothing Then
        If Filter > "" Then
            Filter = Filter & " And "
        End If
        If .Value.Contains(",") Then
            Filter = Filter & "假别 In (" & "\'" & .Value.Replace(",","\',\'") & "\')"
        Else
            Filter = Filter & "假别 = \'" & .Value & "\'"
        End If
    End If
End With
With e.Form.Controls("DateTimePicker1")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "请假日期 >= #" & .Value & "#"
    End If
End With
With e.Form.Controls("DateTimePicker2")
    If .Value IsNot Nothing Then
        If Filter >"" Then
            Filter = Filter & " And "
        End If
        Filter = Filter & "请假日期<= #" & .Value & "#"
    End If
End With


--  作者:hongshizijun
--  发布时间:2012/2/12 12:53:00
--  

该完后 显示如下图

 

 


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

没有可选项


--  作者:czy
--  发布时间:2012/2/12 13:16:00
--  

CheckedComboBox控件有自定义列表项目的

当然你也可以根据表中该字段的值写入到CheckedComboBox中。

建议你还是先看看帮助吧。


--  作者:hongshizijun
--  发布时间:2012/2/12 13:38:00
--  

ok  了

谢谢 czy  老是

 

刚刚学习狐表有些细节还没搞懂。可能今后还会你们添麻烦!!

 

十分感谢