以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]多选行的操作问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188127) |
||||
-- 作者:chnfo -- 发布时间:2023/9/3 22:39:00 -- [求助]多选行的操作问题 示例中,右边的表要跟左边的表建立关联。 在使用过程中,可能想只查看跟左边行关联的行;或者还没有建立任何关联的行;或者所有行 当切换左边行时,只有在过滤条件=“全部”时,才可以多选做关联操作。 当过滤条件是“指定关联”或者“未关联”时,如果多选行勾选或取消勾选,就会出现错误的关联结果。 如何解决这个问题?
|
||||
-- 作者:有点蓝 -- 发布时间:2023/9/3 22:54:00 -- 没看懂1楼表达的意思。请说明一下,按什么逻辑进行关联? 然后举例说明一下,比如按什么步骤操作,正确结果是什么,错误结果是什么?
|
||||
-- 作者:chnfo -- 发布时间:2023/9/4 17:12:00 -- 比如说打开窗口以后,左边显示TbSP表,右边显示TbGD表 选中左表的一行,勾选右表的多行时,右表的SPID=左表行的ID;取消勾选时,右表的SPID=nothing 这个在选中上面所有时,操作都没有问题 但如果单选第一项过滤条件时,右边会过滤显示SPID=左表选中行.ID的数据。 这时候,如果多选右表的行,然后取消勾选,会把一些未选中行的SPID也会赋值nothing 同样的,如果单选第二项过滤条件时,右边会过滤显示SPID=空的数据。 这时候,如果多选右表的行,然后勾选上,会把一些没选中行的SPID赋值 |
||||
-- 作者:chnfo -- 发布时间:2023/9/4 17:13:00 -- 比如选择了未关联(也就是窗口中的上面的第二个radiobutton) 然后选中了第3-10行,然后打勾(这时候,正常情况下会把第3-10行的SPID赋值=左表行(“ID”),实际上不是。
|
||||
-- 作者:有点蓝 -- 发布时间:2023/9/4 17:41:00 -- 既然做了筛选,就应该遍历筛选后的table呀,不应该去遍历datatable,datatable是所有数据,不受筛选影响的 Dim t1 As Table = e.Form.Controls("Table1").Table Dim r As Row = t1.Current If r IsNot Nothing Then For i As Integer = e.Table.BottomPosition To e.Table.TopPosition Step - 1 e.Table.Rows(i)("Temp") = e.Row.Checked Next For Each dr As Row In e.Table.Rows If dr("Temp") = True Then dr("SPID") = r("ID") End If Next End If |
||||
-- 作者:chnfo -- 发布时间:2023/9/4 20:03:00 -- 结果还是不对哟。 [此贴子已经被作者于2023/9/4 20:05:40编辑过]
|
||||
-- 作者:chnfo -- 发布时间:2023/9/4 20:06:00 -- 附件传不上去? |
||||
-- 作者:有点蓝 -- 发布时间:2023/9/4 20:09:00 -- 自己检查所有代码,凡是需要遍历筛选后的表格的地方都按5楼的方法自行改正,不要遍历datatable |
||||
-- 作者:chnfo -- 发布时间:2023/9/4 21:23:00 -- 按要求全改了,还是不对啊 |
||||
-- 作者:有点蓝 -- 发布时间:2023/9/4 21:26:00 -- 什么地方不对? |