以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 还是筛选问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60050) |
-- 作者:tina2012 -- 发布时间: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年的记录, 此时应该是没有满足的数据记录,应该为空,但是却显示了所有的数据记录,请帮忙解决?谢谢!!!
[此贴子已经被作者于2014-11-17 15:13:02编辑过]
|
-- 作者:有点甜 -- 发布时间: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 -- 发布时间:2014/11/17 15:37:00 -- 可以了,谢谢,不过不太明白红色的代码的意思,请指点。还有个问题是:查询表中列都是英文的,可以像统计表那样显示为自定义的中文吗? |
-- 作者:有点甜 -- 发布时间: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 -- 发布时间:2014/11/17 17:59:00 -- 非常感谢。这行代码能解决问题,具体意义可以解释一下吗? Else Tables("Sales_Order_Product").Filter = "1=2" |
-- 作者:有点甜 -- 发布时间:2014/11/17 18:01:00 -- 意思是,你没有处理没有查询到id时候的情况,如果没有查到id,那就设置一个永远不成立的条件。 |