以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- Syscmd.Filter.HideSameValues()对窗口中的副本表无效? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=28123) |
||||
-- 作者:关键下一秒 -- 发布时间:2013/1/19 18:17:00 -- Syscmd.Filter.HideSameValues()对窗口中的副本表无效? 如题!请各位高人指教!谢谢! |
||||
-- 作者:狐狸爸爸 -- 发布时间:2013/1/21 8:56:00 -- 是的,副本没有这个功能。 |
||||
-- 作者:关键下一秒 -- 发布时间:2013/1/21 10:00:00 -- 那对于副本应该如何处理呢? |
||||
-- 作者:lin_hailun -- 发布时间:2013/1/21 10:08:00 -- 几种方法。 方法一,遍历所有的行,比较取出所有不重复的_Identify,然后设置filter 方法二,用datatable.getxxxvalue()取出不重复的值,然后设置filter 方法三,直接用sql语句查找不重复的_Identify,然后设置filter;或者直接使用sql加载不重复的行。 |
||||
-- 作者:关键下一秒 -- 发布时间:2013/1/24 11:59:00 -- 以下是引用lin_hailun在2013-1-21 10:08:00的发言:
几种方法。 方法一,遍历所有的行,比较取出所有不重复的_Identify,然后设置filter 方法二,用datatable.getxxxvalue()取出不重复的值,然后设置filter 方法三,直接用sql语句查找不重复的_Identify,然后设置filter;或者直接使用sql加载不重复的行。 林总,能不能具体一点写个例子啊,相信很多人用得着的? |
||||
-- 作者:blackzhu -- 发布时间:2013/1/24 13:01:00 -- With Tables("表A") .Select(.RowSel, .Cols("第一列").Index) Syscmd.Filter.HideSameValues() End With 这样?
|
||||
-- 作者:关键下一秒 -- 发布时间:2013/1/24 13:05:00 -- 以下是引用blackzhu在2013-1-24 13:01:00的发言:
With Tables("表A")
.Select(.RowSel, .Cols("第一列").Index)
Syscmd.Filter.HideSameValues()
End With
这样? 对窗口中的副本无效啊! |
||||
-- 作者:lin_hailun -- 发布时间:2013/1/24 13:30:00 -- 做一下,方法2,方法一应该是最好的。 Tables("订单").Filter = "单价 < 10" \'模拟筛选 \'开始,产品和客户不重复的行 Dim idxs As String For Each ary As String() In DataTables("订单").GetUniqueValues(Tables("订单").Filter, "产品", "客户") Dim fdr As DataRow = DataTables("订单").Find("产品 = \'" & ary(0) & "\' And 客户 = \'" & ary(1) & "\' And (" & Tables("订单").Filter & ")") idxs &= fdr("_Identify") & "," Next Tables("订单").Filter = "_Identify in (" & idxs.Trim(",") & ")"
|
||||
-- 作者:lin_hailun -- 发布时间:2013/1/24 13:38:00 -- 方法一。 Tables("订单").Filter = "单价 < 10" \'模拟筛选 \'开始,产品和客户不重复的行 Dim idxs As String = "" Dim prev_cp As String = "" Dim prev_kh As String = "" For Each dr As DataRow In DataTables("订单").Select(Tables("订单").Filter, "产品,客户") If prev_cp <> dr("产品") OrElse prev_kh <> dr("客户") Then idxs &= dr("_Identify") & "," prev_cp = dr("产品") prev_kh = dr("客户") End If Next Tables("订单").Filter = "_Identify in (" & idxs.Trim(",") & ")" |
||||
-- 作者:blackzhu -- 发布时间:2013/1/24 14:08:00 -- With Tables(e.Form.Name & "_Table2") .Select(.RowSel, .Cols("第一列").Index) Syscmd.Filter.HideSameValues() End With 测试没有问题.
|