以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=70007)

--  作者:zcgmxf
--  发布时间:2015/6/14 16:45:00
--  [求助]
老师好!有个父表“从业人员健康检查登记表”,子表“从业人员健康检查表”,父表有一列“体检人数”,希望在关联表中增加行时给予限制,就是增加行数不能超过“体检人数”。在子表的BeforeAddDataRow事件中执行代码:Dim d As DataRow  = e.DataRow.GetParentRow("从业人员健康检查登记表")
If d IsNot Nothing Then
    Dim crs As List(of DataRow) = d.GetChildRows("从业人员健康检查表")
    Dim n As Integer  = crs.Count
    If n >= d("体检人数")  Then
        e.Cancel = True
    Else
        e.Cancel = False
    End If
End If
提示:.NET Framework 版本:2.0.50727.5472
Foxtable 版本:2014.11.11.1
错误所在事件:从业人员健康检查表,BeforeAddDataRow
详细错误信息:
未将对象引用设置到对象的实例。
   请指点,谢谢!

--  作者:大红袍
--  发布时间:2015/6/14 16:53:00
--  

 BeforeAddDataRow 根本不知道它的父亲是谁。

 

 或者你这样写

 

Dim d As Row  = Tables("从业人员健康检查登记表").Current

If d IsNot Nothing Then
    Dim crs As List(of DataRow) = d.DataRow.GetChildRows("从业人员健康检查表")
    Dim n As Integer  = crs.Count
    If n >= d("体检人数")  Then
        e.Cancel = True
    Else
        e.Cancel = False
    End If
End If

--  作者:zcgmxf
--  发布时间:2015/6/14 16:59:00
--  
非常感谢!解决了。哈哈哈哈哈哈。。。。努力不够,请多关照。