以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请老师帮忙看一下问题出在哪里,逻辑列  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=74759)

--  作者:szoriental
--  发布时间:2015/9/18 11:19:00
--  请老师帮忙看一下问题出在哪里,逻辑列
一个父表-出库表;一个子表-出库清单;通过出库单号关联;父表有一逻辑列-出库已完成;通过选定父表的逻辑列-出库已完成,禁止编辑子表内容;代码如下:

If e.DataCol.name="出库已完成" Then
    If e.newValue = True Then
                DataTables("出库清单").replacefor("_Locked",True,"出库单号=\'" & e.DataRow("出库单号") &"\'")
    End If
 If e.newValue = False Then
                DataTables("出库清单").replacefor("_Locked",False,"出库单号=\'" & e.DataRow("出库单号") &"\'")
    End If

End If

当我选定父表的逻辑列时,FOXTABLE死了,不能动了,请问这个代码是哪里错了?

--  作者:szoriental
--  发布时间:2015/9/18 13:30:00
--  
没人回我,自己顶;另外说一下,我是用商业版,不是盗版,把这段代码删掉,FOXTABLE就可以正常使用,可见这代码是不正确了,请高手指点下;
--  作者:czy
--  发布时间:2015/9/18 13:34:00
--  
If e.DataCol.name="出库已完成" Then
    Dim drs As List(Of DataRow) = e.DataTable.DataRows.GetChildRows("出库清单")
    If e.newValue = True Then
        For Each dr As DataRow In drs
            dr.Locked = True
        Next
    Else
        For Each dr As DataRow In drs
            dr.Locked = True
        Next
    End If
End If
--  作者:szoriental
--  发布时间:2015/9/18 13:36:00
--  
Czy兄,我那代码有什么不对吗?
--  作者:szoriental
--  发布时间:2015/9/18 13:48:00
--  
Czy兄,提示编译错误,错误代码:Dim drs As List(Of DataRow) = e.DataTable.DataRows.GetChildRows("出库清单")
--  作者:czy
--  发布时间:2015/9/18 13:53:00
--  

呵呵,不好意思,手误

 

If e.DataCol.name="出库已完成" Then
    Dim drs As List(Of DataRow) = e.DataRow.GetChildRows("出库清单")
    For Each dr As DataRow In drs
        dr.Locked = e.newValue
    Next
End If

[此贴子已经被作者于2015/9/18 13:55:22编辑过]

--  作者:szoriental
--  发布时间:2015/9/18 14:37:00
--  
CZY兄,你这代码一样是会出现FOXTABLE死掉的问题;
--  作者:szoriental
--  发布时间:2015/9/18 14:39:00
--  
晕死了,我突然发现不是FOXTABLE死掉了,是速度慢的问题;逻辑列勾上后,要过半天才有反应;
--  作者:szoriental
--  发布时间:2015/9/18 14:41:00
--  
应该是我出库清单表的数据太多了,请教一下老师,应该如何解决让它速度快起来?
--  作者:Hyphen
--  发布时间:2015/9/18 16:00:00
--  

减少加载的数据量,按照需要加载