Foxtable(狐表)用户栏目专家坐堂 → 代码的请教!!


  共有1770人关注过本帖树形打印复制链接

主题:代码的请教!!

帅哥哟,离线,有人找我吗?
manyifuwu
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:500 积分:5397 威望:0 精华:0 注册:2009/2/5 13:09:00
代码的请教!!  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/4/18 12:30:00 [只看该作者]

还不如重新写代码。上传实例,说明逻辑

 回到顶部