Foxtable(狐表)用户栏目专家坐堂 → [求助][已解决]一段菜单代码,如何提高效率和精简了


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

主题:[求助][已解决]一段菜单代码,如何提高效率和精简了

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


加好友 发短信
等级:幼狐 帖子:104 积分:861 威望:0 精华:0 注册:2013/7/16 16:46:00
[求助][已解决]一段菜单代码,如何提高效率和精简了  发帖心情 Post By:2014/4/29 10:00:00 [显示全部帖子]

Dim xq As RibbonMenu.ComboBox = RibbonTabs("内容查询").Groups("精确查询").Items("辖区查询")

Dim lx As RibbonMenu.ComboBox = RibbonTabs("内容查询").Groups("精确查询").Items("类型查询")

Dim zt As RibbonMenu.ComboBox = RibbonTabs("内容查询").Groups("精确查询").Items("状态查询")

Dim xq1 As String = xq.Text

Dim lx1 As String = lx.Text

Dim zt1 As String = zt.Text

Dim dt1 As Date = RibbonTabs("内容查询").Groups("按日期").Items("开始时间").Value

Dim dt2 As Date = RibbonTabs("内容查询").Groups("按日期").Items("终止时间").Value

Dim y1 As Integer = dt1.Year

Dim m1 As Integer = dt1.Month

Dim d1 As Integer = dt1.Day

Dim y2 As Integer = dt2.year

Dim m2 As Integer = dt2.Month

Dim d2 As Integer = dt2.Day

Dim time As String

If dt1 <> Nothing And dt2 <> Nothing Then

    time = "签约时间 >= #" & y1 & "/" & m1 & "/" & d1 & "#  And 签约时间 <= #" & y2 & "/" & m2 & "/" & d2 & "# "

Else If dt1 <> Nothing Then

    time = "签约时间 >= #" & y1 & "/" & m1 & "/" & d1 & "# "

Else If dt2 <> Nothing Then

    time = "签约时间 <= #" & y2 & "/" & m2 & "/" & d2 & "# "

Else time"签约时间 <= #2099/01/01#"

End If

Dim qycx As New SQLJoinTableBuilder("综合查询""客户资料"'生成查询表

qycx.ConnectionName = "JD"

qycx.AddCols("合同编号","项目类型","区域","服务状态","签约名称","签约时间","地址","联系人","电话","业务员","备注")

qycx.Build

MainTable = Tables("综合查询")

Dim Filter As String

If xq1 IsNot "" Then

    If lx1 IsNot "" Then

        If zt1 IsNot "" Then

            Filter = "区域 Like '*" & xq1 & "*' And 项目类型 Like '*" & lx1 & "*' And 服务状态 Like '*" & zt1 & "*' and " & time & "  "

            Tables("综合查询").Filter = Filter

        Else

            Filter = "区域 Like '*" & xq1 & "*' And 项目类型 Like '*" & lx1 & "*' And " & time & "  "

            Tables("综合查询").Filter = Filter

        End If

    Else

        If zt1 IsNot "" Then

            Filter = "区域 Like '*" & xq1 & "*' And 服务状态 Like '*" & zt1 & "*' and " & time & " "

            Tables("综合查询").Filter = Filter

        Else

            Filter = "区域 Like '*" & xq1 & "*' and " & time & " "

            Tables("综合查询").Filter = Filter

        End If

    End If

Else If lx1 IsNot "" Then

    If zt1 IsNot "" Then

        Filter = "项目类型 Like '*" & lx1 & "*' And 服务状态 Like '*" & zt1 & "*' and " & time & " "

        Tables("综合查询").Filter = Filter

    Else

        Filter = "项目类型 Like '*" & lx1 & "*' and " & time & " "

        Tables("综合查询").Filter = Filter

    End If

Else

    If zt1 IsNot "" Then

        Filter = "服务状态 Like '*" & zt1 & "*' and " & time & " "

        Tables("综合查询").Filter = Filter

    Else

        Tables("综合查询").Filter = time

    End If

End If

这个代码是先生成表,后做筛选,降低了效率,要改变为 qycx.Filter = filter 又发现Filter代码出不来了。

另外感觉这个结构太乱,反复判断,有没有什么方法简单点

[此贴子已经被作者于2014-4-29 11:24:19编辑过]

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


加好友 发短信
等级:幼狐 帖子:104 积分:861 威望:0 精华:0 注册:2013/7/16 16:46:00
  发帖心情 Post By:2014/4/29 10:20:00 [显示全部帖子]

Dim xq As RibbonMenu.ComboBox = RibbonTabs("内容查询").Groups("精确查询").Items("辖区查询")

Dim lx As RibbonMenu.ComboBox = RibbonTabs("内容查询").Groups("精确查询").Items("类型查询")

Dim zt As RibbonMenu.ComboBox = RibbonTabs("内容查询").Groups("精确查询").Items("状态查询")

Dim xq1 As String = xq.Text

Dim lx1 As String = lx.Text

Dim zt1 As String = zt.Text

Dim dt1 As Date = RibbonTabs("内容查询").Groups("按日期").Items("开始时间").Value

Dim dt2 As Date = RibbonTabs("内容查询").Groups("按日期").Items("终止时间").Value

Dim y1 As Integer = dt1.Year

Dim m1 As Integer = dt1.Month

Dim d1 As Integer = dt1.Day

Dim y2 As Integer = dt2.year

Dim m2 As Integer = dt2.Month

Dim d2 As Integer = dt2.Day

Dim time As String

If dt1 <> Nothing And dt2 <> Nothing Then

    time = "签约时间 >= #" & y1 & "/" & m1 & "/" & d1 & "#  And 签约时间 <= #" & y2 & "/" & m2 & "/" & d2 & "# "

Else If dt1 <> Nothing Then

    time = "签约时间 >= #" & y1 & "/" & m1 & "/" & d1 & "# "

Else If dt2 <> Nothing Then

    time = "签约时间 <= #" & y2 & "/" & m2 & "/" & d2 & "# "

Else time= "签约时间 <= #2099/01/01#"

End If

Dim qycx As New SQLJoinTableBuilder("综合查询", "客户资料") '生成查询表

qycx.ConnectionName = "JD"

qycx.AddCols("合同编号","项目类型","区域","服务状态","签约名称","签约时间","地址","联系人","电话","业务员","备注")

Dim Filter As String

If xq1 IsNot "" Then

    If lx1 IsNot "" Then

        If zt1 IsNot "" Then

            Filter = "区域 Like '*" & xq1 & "*' And 项目类型 Like '*" & lx1 & "*' And 服务状态 Like '*" & zt1 & "*' and " & time & "  "

        Else

            Filter = "区域 Like '*" & xq1 & "*' And 项目类型 Like '*" & lx1 & "*' And " & time & "  "

        End If

    Else

        If zt1 IsNot "" Then

            Filter = "区域 Like '*" & xq1 & "*' And 服务状态 Like '*" & zt1 & "*' and " & time & " "

        Else

            Filter = "区域 Like '*" & xq1 & "*' and " & time & " "

        End If

    End If

Else If lx1 IsNot "" Then

    If zt1 IsNot "" Then

        Filter = "项目类型 Like '*" & lx1 & "*' And 服务状态 Like '*" & zt1 & "*' and " & time & " "

    Else

        Filter = "项目类型 Like '*" & lx1 & "*' and " & time & " "

    End If

Else

    If zt1 IsNot "" Then

        Filter = "服务状态 Like '*" & zt1 & "*' and " & time & " "

    Else

        Tables("综合查询").Filter = time

    End If

End If

qycx.Filter = Filter

qycx.Build

MainTable = Tables("综合查询")

 

 现在改成了这个样子,就过不去了,


此主题相关图片如下:捕获.png
按此在新窗口浏览图片


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


加好友 发短信
等级:幼狐 帖子:104 积分:861 威望:0 精华:0 注册:2013/7/16 16:46:00
  发帖心情 Post By:2014/4/29 11:24:00 [显示全部帖子]

Dim xq As String = RibbonTabs("内容查询").Groups("精确查询").Items("辖区查询").Text

Dim lx As String = RibbonTabs("内容查询").Groups("精确查询").Items("类型查询").Text

Dim zt As String = RibbonTabs("内容查询").Groups("精确查询").Items("状态查询").Text

Dim dt1 As Date = RibbonTabs("内容查询").Groups("按日期").Items("开始时间").Value

Dim dt2 As Date = RibbonTabs("内容查询").Groups("按日期").Items("终止时间").Value

Dim time As String

If dt1 <> Nothing AndAlso dt2 <> Nothing Then

    time = "签约时间 >= '" & dt1 & "'  And 签约时间 <= '" & dt2 & "' "

Else If dt1 <> Nothing Then

    time = "签约时间 >= '" & dt1 & "' "

Else If dt2 <> Nothing Then

    time = "签约时间 <= '" & dt2 & "' "

Else time"签约时间 <= '2099/01/01'"

End If

Dim qycx As New SQLJoinTableBuilder("综合查询""客户资料"'生成查询表

qycx.ConnectionName = "JD"

qycx.AddCols("合同编号","项目类型","区域","服务状态","签约名称","签约时间","地址","联系人","电话","业务员","备注")

Dim Filter As String = time

If xq > "" Then

    Filter = Filter & " And 区域 like '%" & xq & "%'"

End If

If lx > "" Then

    Filter = Filter & " And 项目类型 like '%" & lx & "%'"

End If

If zt > "" Then

    Filter = Filter & " And 服务状态 like '%" & zt & "%'"

End If

qycx.Filter = Filter

qycx.Build

MainTable = Tables("综合查询")

 


这回舒服多了,多谢各位老师的指点。

[此贴子已经被作者于2014-4-29 11:28:46编辑过]

 回到顶部