以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 再已筛选的表格里,再做筛选 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=87397) |
-- 作者:szsmall -- 发布时间:2016/7/10 18:51:00 -- 再已筛选的表格里,再做筛选 右边的明细表,按项目显示出所有的明细后,怎样限制只能在明细表显示出来的明细项目里筛选 |
-- 作者:大红袍 -- 发布时间:2016/7/11 4:36:00 -- 加入你原来的条件是这样 "计划单号 in (\'1\', \'2\', \'3\')"
那么按钮就这样写 "计划单号 in (\'1\', \'2\', \'3\') and 材料名称 like \'%" & e.Form.Controls("TextBox1").Text & "%\'" |
-- 作者:szsmall -- 发布时间:2016/7/12 8:01:00 -- Dim t1 As WinForm.Table = e.Form.Controls("Table1") Dim ids As List(Of String) = t1.Table.DataTable.GetValues("计划单号",t1.Table.Filter) Dim t2 As WinForm.Table = e.Form.Controls("Table2") Dim filter As String = "计划单号 in (\'" & String.Join("\',\'",ids.ToArray()) & "\') " Dim txt As WinForm.TextBox = e.Form.Controls("TextBox1") If txt.Text > "" Then filter = filter & " and 材料名称 like \'%" & txt.Text & "%\' or 规格型号 Like \'*" & txt.text & "*\' Or Convert([数量],\'System.String\') like \'%" & txt.text & "%\' " t2.Table.Filter = filter End If -------------------------- 将之前别人提供的代码改一下,可以用。但有几个问题,到现在还是不大明白 1、t1.Table.Filter 是什么意思?T1控件表格的筛选? 2、String.Join("\',\'",ids.ToArray()) "\',\'",分隔符为什么还要加单引号?是因为表达式内部的字符串? ids,为什么要用ToArray转换成数组?试过去掉,会出现无法转换的错误 ![]() |
-- 作者:Hyphen -- 发布时间:2016/7/12 8:59:00 -- 1.Filter指表格的筛选条件 2.单引号是sql语言语法的要求,字符串要用单引号引用起来 用ToArray是String.Join函数的参数要求是数组 这些都是编程语言的用法规定
|
-- 作者:大红袍 -- 发布时间:2016/7/12 9:20:00 -- 代码应该这样写吧?
filter = filter & " and (材料名称 like \'%" & txt.Text & "%\' or 规格型号 Like \'%" & txt.text & "%\' Or Convert([数量],\'System.String\') like \'%" & txt.text & "%\') " |
-- 作者:szsmall -- 发布时间:2016/7/12 12:00:00 -- @Hyphen 1、筛选条件,帮助里是具体的产品、时间、金额等,t1.Table.Filter指的是什么?有帮助链接嘛? 之前写代码时,没加这个会搜索所有订购单,帮助里找不到相关的资料。 2、SQL语言?有相关的介绍嘛,啃帮助,没找着 |
-- 作者:大红袍 -- 发布时间:2016/7/12 12:03:00 -- 1、指的是你之前设置的筛选条件
2、http://www.foxtable.com/webhelp/scr/0687.htm
|
-- 作者:szsmall -- 发布时间:2016/7/12 16:55:00 -- 1、之前设置的筛选条件,是指GetValues("计划单号",t1.Table.Filter)的“计划单号”? 2、filter = filter & " and (材料名称 like \'%" & txt.Text & "%\' or 规格型号 Like \'%" & txt.text & "%\' Or Convert([数量],\'System.String\') like \'%" & txt.text & "%\') " 括号,似乎对代码没影响,去掉,也可以运行 3、另外,如果想知道ids、filter的值,该怎么写代码?直接用messbox.show,会出现错误 [此贴子已经被作者于2016/7/12 16:56:30编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/7/12 17:01:00 -- 1、参考
http://www.foxtable.com/webhelp/scr/2747.htm
2、不能去掉
3、msgbox(String.Join("\',\'",ids.ToArray())) |