Foxtable(狐表)用户栏目专家坐堂 → [求助]把代码改为从后台筛选


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

主题:[求助]把代码改为从后台筛选

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
[求助]把代码改为从后台筛选  发帖心情 Post By:2016/10/17 15:07:00 [显示全部帖子]

Forms("退款记载结果").Open
Dim filter1 As String = ""

With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        filter1 = "[F5319]Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        If filter1 > "" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4384]Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox2")
    If .Value IsNot Nothing Then
        If filter1 >"" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4387] Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox3")
    If .Value IsNot Nothing Then
        If filter1 >"" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4419]Like '*" & .Value & "*'"
    End If
End With

Dim cal1 As WinForm.DateTimePicker = e.Form.Controls("datetimepicker1")
Dim cal2 As WinForm.DateTimePicker = e.Form.Controls("datetimepicker2")
If cal1.value IsNot Nothing And cal2.value IsNot Nothing Then
    If filter1 > "" Then
        filter1 = filter1 & " and"
    End If
    filter1 = filter1 & "[F4411] >= '" & cal1.value & " ' and [F4411] <= ' " & cal2.value & "'"
End If
    If filter1 > "" Then
        filter1 = filter1 & " and"
  End If  
Forms("退款记载结果").Controls("Table1").Table.filter = filter1 & " [F4415]>0"
Forms("退款记载结果").Controls("label2").Text = Forms("退款记载结果").Controls("Table1").Table.Compute("sum(F4415)")




请问这段代码怎么改使得是从后台(外部数据源)筛选出来的结果?

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 16:05:00 [显示全部帖子]

好像运行后原来的表消失了,关掉窗口表后怎么还原它?

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 16:10:00 [显示全部帖子]

哦,不对,我说错了,是原来的表都变成筛选结果了,怎么复原它?

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 16:37:00 [显示全部帖子]

以下是引用有点蓝在2016/10/17 16:34:00的发言:
datatables(源表名).LoadFilter =""
datatables(源表名).Load
请问这段代码放在哪里?


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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 17:17:00 [显示全部帖子]

前面那几段代码combobox、TextBox、filter1
With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        filter1 = "[F5319]Like '*" & .Value & "*'"
    End If
End With
要改吗?为什么我在combobox或者TextBox控件上输入条件后查询出来什么都没有?

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 17:52:00 [显示全部帖子]

对啊,我已经加了,之前的问题解决了,现在这个问题是我在combobox、textbox1那些控件上增加filter1的内容,但是运行时好像filter1没有筛选出来。。。

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 17:58:00 [显示全部帖子]

以下是引用qscwdvefb在2016/10/17 17:52:00的发言:
对啊,我已经加了,之前的问题解决了,现在这个问题是我在combobox、textbox1那些控件上增加filter1的内容,但是运行时好像filter1没有筛选出来。。。
之前我没有在控件上输入任何东西,所以filter1里面没有内容,因此只筛选了[F4415]>0的数据,所以才会成功。现在问题好像就出现在filter1上


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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 18:20:00 [显示全部帖子]


---------------------------

---------------------------
[F5319]Like '*2011*' and
---------------------------
确定   
---------------------------

这是我在combobox控件输入“2011”时运行出来的messagebox结果,源代码如下:

Forms("退款记载结果").Open
Dim filter1 As String = ""

With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        filter1 = "[F5319]Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        If filter1 > "" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4384]Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox2")
    If .Value IsNot Nothing Then
        If filter1 >"" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4387] Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox3")
    If .Value IsNot Nothing Then
        If filter1 >"" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4419]Like '*" & .Value & "*'"
    End If
End With

Dim cal1 As WinForm.DateTimePicker = e.Form.Controls("datetimepicker1")
Dim cal2 As WinForm.DateTimePicker = e.Form.Controls("datetimepicker2")
If cal1.value IsNot Nothing And cal2.value IsNot Nothing Then
    If filter1 > "" Then
        filter1 = filter1 & " and"
    End If
    filter1 = filter1 & "[F4411] >= '" & cal1.value & " ' and [F4411] <= ' " & cal2.value & "'"
End If
    If filter1 > "" Then
        filter1 = filter1 & " and"
  End If  
messagebox.show(filter1)
Dim dt As DataTable = Forms("退款记载结果").Controls("Table1").Table.DataTable
dt.LoadFilter = filter1 & " [F4415]>0"
dt.Load
Forms("退款记载结果").Controls("label2").Text =  Forms("退款记载结果").Controls("Table1").Table.Compute("sum(F4415)")

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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 18:24:00 [显示全部帖子]

以下是引用qscwdvefb在2016/10/17 18:20:00的发言:

---------------------------

---------------------------
[F5319]Like '*2011*' and
---------------------------
确定   
---------------------------

这是我在combobox控件输入“2011”时运行出来的messagebox结果,源代码如下:

Forms("退款记载结果").Open
Dim filter1 As String = ""

With e.Form.Controls("combobox1")
    If .Value IsNot Nothing Then
        filter1 = "[F5319]Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox1")
    If .Value IsNot Nothing Then
        If filter1 > "" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4384]Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox2")
    If .Value IsNot Nothing Then
        If filter1 >"" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4387] Like '*" & .Value & "*'"
    End If
End With
With e.Form.Controls("TextBox3")
    If .Value IsNot Nothing Then
        If filter1 >"" Then
            filter1 = filter1 & " And "
        End If
        filter1 = filter1 & "[F4419]Like '*" & .Value & "*'"
    End If
End With

Dim cal1 As WinForm.DateTimePicker = e.Form.Controls("datetimepicker1")
Dim cal2 As WinForm.DateTimePicker = e.Form.Controls("datetimepicker2")
If cal1.value IsNot Nothing And cal2.value IsNot Nothing Then
    If filter1 > "" Then
        filter1 = filter1 & " and"
    End If
    filter1 = filter1 & "[F4411] >= '" & cal1.value & " ' and [F4411] <= ' " & cal2.value & "'"
End If
    If filter1 > "" Then
        filter1 = filter1 & " and"
  End If  
messagebox.show(filter1)
Dim dt As DataTable = Forms("退款记载结果").Controls("Table1").Table.DataTable
dt.LoadFilter = filter1 & " [F4415]>0"
dt.Load
Forms("退款记载结果").Controls("label2").Text =  Forms("退款记载结果").Controls("Table1").Table.Compute("sum(F4415)")

messagebox.show(filter1)出现在倒数第五行


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


加好友 发短信
等级:幼狐 帖子:141 积分:904 威望:0 精华:0 注册:2016/8/4 10:50:00
  发帖心情 Post By:2016/10/17 18:31:00 [显示全部帖子]

---------------------------

---------------------------
[F5319]Like '*2011*' And [F4384]Like '*512*' and
---------------------------
确定   
---------------------------
这是在combobox1和TextBox1上输入,messagebox显示的结果

 回到顶部
总数 26 1 2 3 下一页