以文本方式查看主题

-  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
--  再已筛选的表格里,再做筛选
右边的明细表,按项目显示出所有的明细后,怎样限制只能在明细表显示出来的明细项目里筛选


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





--  作者:大红袍
--  发布时间: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转换成数组?试过去掉,会出现无法转换的错误


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

图片点击可在新窗口打开查看

--  作者: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,会出现错误


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

[此贴子已经被作者于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()))