Foxtable(狐表)用户栏目专家坐堂 → 还是筛选问题


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

主题:还是筛选问题

美女呀,离线,留言给我吧!
tina2012
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
还是筛选问题  发帖心情 Post By:2014/11/17 15:13:00 [只看该作者]

“查询”按钮代码:
Dim conStart As WinForm.DateTimePicker = e.Form.Controls("DateTimeStart")
Dim conEnd As WinForm.DateTimePicker = e.Form.Controls("DateTimeEnd")

Dim b As New SQLJoinTableBuilder("查询表1","Sales_Order_Product")        
b.C    

Tables("Sales_Order_List").Filter = "SubmitDate >= #" & conStart.text & "# And SubmitDate <= #" & conEnd.text & " # And SubmitUser = '" & _UserId & "'"  
MessageBox.show(_UserId)

Dim str As String = DataTables("Sales_Order_List").GetComboListString("Id", Tables("Sales_Order_List").Filter).Replace("|", ",")
If str > "" Then
    Tables("Sales_Order_Product").Filter = "OrderId In (" & DataTables("Sales_Order_List").GetComboListString("Id", Tables("Sales_Order_List").Filter).Replace("|", ",") & ")"
End If

b.Filter = Tables("Sales_Order_Product").Filter

b.AddTable("Sales_Order_Product","OrderId","Sales_Order_List","Id")   '表Sales_Order_Product"和表"OrderId","Sales_Order_List"是关联的
b.AddTable("Sales_Order_List","CustomerId","Customer_List","Id")
b.AddTable("Sales_Order_Product","ProductId","Sales_Product_List","Id")
b.AddCols("{Sales_Product_List}.Name","{Customer_List}.Name","SubmitDate","{Sales_Order_Product}.Amount","{Sales_Order_Product}.SalesPrice","SubmitUserName")
b.Build   '生成查询表

Tables("销售查询_Table1").DataSource = b.BuildDataSource()

如果“开始时间”设为2014-01-01,“结束时间”设为2014-01-30,查询表中就会显示出所有的数据,包括其他业务员的订单情况,这是不允许的。
注:数据库表中没有2014年的记录,
此时应该是没有满足的数据记录,应该为空,但是却显示了所有的数据记录,请帮忙解决?谢谢!!!

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

[此贴子已经被作者于2014-11-17 15:13:02编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/17 15:17:00 [只看该作者]

Dim str As String = DataTables("Sales_Order_List").GetComboListString("Id", Tables("Sales_Order_List").Filter).Replace("|", ",")
If str > "" Then
    Tables("Sales_Order_Product").Filter = "OrderId In (" & DataTables("Sales_Order_List").GetComboListString("Id", Tables("Sales_Order_List").Filter).Replace("|", ",") & ")"
Else
    Tables("Sales_Order_Product").Filter = "1=2"
End If

b.Filter = Tables("Sales_Order_Product").Filter

 回到顶部
美女呀,离线,留言给我吧!
tina2012
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/17 15:37:00 [只看该作者]

可以了,谢谢,不过不太明白红色的代码的意思,请指点。还有个问题是:查询表中列都是英文的,可以像统计表那样显示为自定义的中文吗?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/17 15:39:00 [只看该作者]

 可以,这样写

 

 b.AddCols("{Sales_Product_List}.Name As 自己的名字","{Customer_List}.Name","SubmitDate","{Sales_Order_Product}.Amount","{Sales_Order_Product}.SalesPrice","SubmitUserName")


 回到顶部
美女呀,离线,留言给我吧!
tina2012
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:286 积分:2462 威望:0 精华:0 注册:2013/9/23 16:09:00
  发帖心情 Post By:2014/11/17 17:59:00 [只看该作者]

非常感谢。这行代码能解决问题,具体意义可以解释一下吗?
Else
    Tables("Sales_Order_Product").Filter = "1=2"

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/11/17 18:01:00 [只看该作者]

 意思是,你没有处理没有查询到id时候的情况,如果没有查到id,那就设置一个永远不成立的条件。

 回到顶部