以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码的请教!! (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=83834) |
-- 作者:manyifuwu -- 发布时间:2016/4/18 12:26:00 -- 代码的请教!! 下面的代码,是先获取本月所以订单,然后在筛选出选择日期的订单。是否有错,感觉有些臃肿,有可以优化高效一些吗?谢谢! Dim y As Integer = Date.Today.Year Dim m As Integer = Date.Today.Month Dim dt1 As New Date(y, m, 1) Dim dt2 As New Date(y, m, Date.DaysInMonth(y, m)) \'获取本月的最后一天 Dim Filter As String Filter = "截止日期 >= \'" & dt1 & "\' And 截止日期 <= \'" & dt2 & "\'" DataTables("派工").LoadFilter = Filter DataTables("派工").Load() Tables("派工").Filter = "截止日期 = \'" & e.Sender.Value & "\'" Static lst As List(of Date) \'定义一个静态集合变量,用于存储选择的截止日期 If lst Is Nothing Then lst = New List(of Date) End If If ModifierKey <> Keys.Control Then \'如果没有按下Ctrl键 lst.Clear() \'清除以前的截止日期 End If If lst.Contains(e.Sender.Value) = False Then \'如果集合不包括按下的截止日期 lst.Add(e.Sender.Value) \'则向集合添加此截止日期 End If If lst.Count = 1 Then \'如果只选择了一个截止日期,则直接筛选此截止日期的派工 Tables("派工").Filter = "截止日期 = \'" & e.Sender.Value & "\'" Else \'否则用In运算符筛选选定的多个截止日期的派工 Dim v As String For i As Integer = 0 To lst.Count - 1 v = v & "\'" & lst(i) & "\'," Next v = v.Trim(",") Tables("派工").Filter = "截止日期 In (" & v & ")" End If Tables("派工").Filter &= " and 时段 <> \'5取消\'" "
[此贴子已经被作者于2016/4/18 12:29:03编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/4/18 12:30:00 -- 还不如重新写代码。上传实例,说明逻辑 |