以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 时间段筛选问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=29718) |
-- 作者:cks -- 发布时间:2013/3/12 13:15:00 -- 时间段筛选问题 我的项目在窗口启动后事件中写入加载的行是姓名列是当前用户名的行信息(这个问题实现)
再者我想在两个日期控件填入日期值时,对当前用户名的行信息进行时段的筛选
代码为:
现在问题是填入日期后没有任何的筛选动作(注:代码写在日期输入框事件:ValueChanged) |
-- 作者:狐狸爸爸 -- 发布时间:2013/3/12 13:28:00 -- 第一行加: MessageBox.show(“我执行了”)
最后一行加: MessageBo.Show(Tables("出差申请表").Filter)
看看程序是否执行了,是否合成了筛选表达式。
|
-- 作者:cks -- 发布时间:2013/3/12 13:38:00 -- 此主题相关图片如下:qq截图20130312131015.png Dim bm As WinForm.ComboBox = e.Form.Controls("部门") Dim xm As WinForm.ComboBox = e.Form.Controls("姓名") Dim sqsj As WinForm.DateTimePicker = e.Form.Controls("申请日期") Dim jj As WinForm.ComboBox = e.Form.Controls("出差需求方") Dim s1 As WinForm.DateTimePicker = e.Form.Controls("申请日期止") If bm.Text = "" Then Tables("出差申请表").Filter="[申请人姓名] = \'" & user.Name & "\'" Else Dim dr As DataRow = DataTables("出差申请表").find("[申请人姓名] = \'" & user.Name & "\'") If dr IsNot Nothing Then Tables("出差申请表").Filter ="[申请人姓名] = \'" & user.Name & "\'And 申请日期 > #" & IIF(sqsj.Text = "", "1/1/1900", sqsj.Text) & "#\'And 申请日期 < #" & IIF(s1.Text = "", "1/1/1900", s1.Text) & "#" MessageBox.show("我执行了") Else Tables("出差申请表").Filter="部门 Like \'*" & bm.Text & "*\' and 需求出差方 like \'*" & jj.text & "*\' And 申请人姓名 Like \'*" & xm.Text & "*\' And 申请日期 > #" & IIF(sqsj.Text = "", "1/1/1900", sqsj.Text) & "#\'And 申请日期 < #" & IIF(s1.Text = "", "1/1/1900", s1.Text) & "#" MessageBox .Show(Tables("出差申请表").Filter) End If End If |
-- 作者:狐狸爸爸 -- 发布时间:2013/3/12 13:42:00 -- Dim bm As WinForm.ComboBox = e.Form.Controls("部门") Dim xm As WinForm.ComboBox = e.Form.Controls("姓名") Dim sqsj As WinForm.DateTimePicker = e.Form.Controls("申请日期") Dim jj As WinForm.ComboBox = e.Form.Controls("出差需求方") Dim s1 As WinForm.DateTimePicker = e.Form.Controls("申请日期止") If bm.Text = "" Then Tables("出差申请表").Filter="[申请人姓名] = \'" & user.Name & "\'" messagebox.show("部门为空") Else Dim dr As DataRow = DataTables("出差申请表").find("[申请人姓名] = \'" & user.Name & "\'") If dr IsNot Nothing Then Tables("出差申请表").Filter ="[申请人姓名] = \'" & user.Name & "\'And 申请日期 > #" & IIF(sqsj.Text = "", "1/1/1900", sqsj.Text) & "#\'And 申请日期 < #" & IIF(s1.Text = "", "1/1/1900", s1.Text) & "#" MessageBox.show("找到符合条件的行") Else Tables("出差申请表").Filter="部门 Like \'*" & bm.Text & "*\' and 需求出差方 like \'*" & jj.text & "*\' And 申请人姓名 Like \'*" & xm.Text & "*\' And 申请日期 > #" & IIF(sqsj.Text = "", "1/1/1900", sqsj.Text) & "#\'And 申请日期 < #" & IIF(s1.Text = "", "1/1/1900", s1.Text) & "#" MessageBox.show("没有找到符合条件的行") End If MessageBox .Show("合成的条件:" & Tables("出差申请表").Filter) End If |
-- 作者:cks -- 发布时间:2013/3/12 13:44:00 -- 部门为空! 后面的就全部没执行了 |
-- 作者:狐狸爸爸 -- 发布时间:2013/3/12 13:47:00 -- 那就修改自己代码。 这个例子很好,多看看: http://www.foxtable.com/help/topics/1058.htm
多看帮助才是正道。 |
-- 作者:cks -- 发布时间:2013/3/12 14:43:00 -- 看了好久,搞不定,有那么一点点急,救狐爸帮处理一下,万分感激 |
-- 作者:狐狸爸爸 -- 发布时间:2013/3/12 15:27:00 -- 我也不知道你要干什么,怎么帮你呢? 我们只能告诉你为什么这段代码没有执行。
你要先理清楚关系,并清晰表述出来,别人才可能帮得到你。 |
-- 作者:jijianjsj -- 发布时间:2013/3/12 15:39:00 -- 你这段代码都不知道放在哪个事件里的,如果放在窗口启动后,肯定后面没执行,你还不如加个查询按钮不是更好吗? (如果说的不对,请无视)
|
-- 作者:cks -- 发布时间:2013/3/12 15:57:00 -- 多谢狐爸,再次啃帮助后发现,问题解决了 |