这里用的是SQLFind:
Dim dr1 As DataRow = DataTables("T246").SQLFind("[F4411] Is Not Null", "F4411", 0)
但是这里用的是Find:
drl0 = DataTables("T246").Find("[F4411] >= #" & d1 & "# And [F4411] <= #" & d2 & "# And [F4386] ='" & val & "'","F4411 Desc",0)
这是为什么?
筛选后台数据:
Dim Filter AS string = "[T246Id] in ("
For each dr as datarow in drl
filter = filter & "'" & dr("T246Id") & "',"
next
Filter = Filtrer.Trim(",") & ")"
DataTables("T246").LoadFilter = Filter
DataTables("T246").Load
IN运算符
IN运算符是用来判断一个表达式的值是否属于一个指定列表中的值。
例如同样是加载产品PD01和PD02的订单,用IN运算符可以简化为:
SELECT * FR OM {订单} WHERE 产品 IN ('PD01','PD02')
可以用NOT关键词来进行反向的操作,例如加载除产品PD01和PD02之外的订单:
SELECT * FR OM {订单} WHERE 产品 NOT IN ('PD01','PD02')
显然,指定的值越多,IN运算符的优势越明显。
注意如果是数值列,就不需要用单引号,例如:
编号 IN (1,2,3)