以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  表格使用勾选框的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=133095)

--  作者:whoisvinci
--  发布时间:2019/4/6 15:46:00
--  表格使用勾选框的问题


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

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

 

图1的“确定”的“click”时间代码如下

Dim tb1 As Table = Tables("申购明细选择_Table1")
Dim tb2 As Table = Tables("申购单.申购明细")

For Each ro As Row In tb1.Rows
    If ro.Checked = True Then
        tb2.AddNew()
        Functions.Execute("AddNewItem","申购单.申购明细")
        tb2.current("货品编号") = ro("货品编号")
        ro.Checked = False
    End If
Next
e.Form.close()

 

现在的问题是,只要勾选的内容在“插座”后,都会默认添加插座进去,然后最后一个勾选项被舍弃。但如果勾选在“插座”前的项,则插入的项都正确。表象就是好像“插座”这项始终都是被勾选的,但表中却不显示。


--  作者:有点蓝
--  发布时间:2019/4/6 16:10:00
--  
Dim tb1 As Table = Tables("申购明细选择_Table1")
Dim tb2 As Table = Tables("申购单.申购明细")
For Each ro As Row In tb1.GetCheckedRows
        Dim r As Row = tb2.AddNew()
        Functions.Execute("AddNewItem","申购单.申购明细")
        r("货品编号") = ro("货品编号")
Next
tb1.ClearCheckedRows()
e.Form.close()

--  作者:whoisvinci
--  发布时间:2019/4/6 16:54:00
--  
谢谢,蓝版,问题解决了,但是还是不明白我的代码有什么问题
--  作者:有点蓝
--  发布时间:2019/4/6 17:32:00
--  
勾选的行尽量使用GetCheckedRows。
引用新增行,这样用:Dim r As Row = tb2.AddNew()
tb2.current未必是新增的行,因为当前行容易受其它代码影响而变化

--  作者:whoisvinci
--  发布时间:2019/4/8 9:10:00
--  
好的,谢谢蓝版指点。