以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  复选框 筛选加载的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=142050)

--  作者:sxm12123
--  发布时间:2019/10/17 11:05:00
--  复选框 筛选加载的问题
A表为订单主表  B表为订单明细表
表B的加载条件为:表A已选择的逻辑行中查找订单编号
存在问题:只能显示一张订单明细,表A选择多张订单也只能显示一张订单明细
需要解决:如何实现表A选择多张订单后,表B加载多张订单的明细?
表B的afterload事件代码如下:
For Each r As Row In Tables("订单查询").GetCheckedRows
    DataTables("未走量").LoadFilter = "起始凭证 = \'" & r("起始凭证") & "\'"
    DataTables("未走量").Load
Next


--  作者:有点蓝
--  发布时间:2019/10/17 11:24:00
--  
表A,AfterCheckRow的事件代码

Dim str As String = ""
For Each r As Row In e.Table.GetCheckedRows \'遍历所有已经勾选的行
    str = str & ",\'" r("起始凭证") & "\'"
Next
str = str.Trim(",")

    DataTables("表B").LoadFilter = "起始凭证 in (" & str & ")"
    DataTables("表B").Load

--  作者:sxm12123
--  发布时间:2019/10/17 14:52:00
--  
感谢老师,问题解决了。但是表A不勾选行的时候会出现运行错误提示:语法错误 (操作符丢失) 在查询表达式 \'(起始凭证 in ())\' 中。

Dim str As String = ""
For Each r As Row In e.Table.GetCheckedRows \'遍历所有已经勾选的行
    str = str & ",\'" & r("起始凭证") & "\'"
Next
str = str.Trim(",")
DataTables("未走量").LoadFilter = "起始凭证 in (" & str & ")"
DataTables("未走量").Load
--  作者:有点蓝
--  发布时间:2019/10/17 14:59:00
--  
很简单的问题,自己想想应该怎么处理,如果没有勾选,应该怎么判断?