Foxtable(狐表)用户栏目专家坐堂 → 增加行出错


  共有2742人关注过本帖树形打印复制链接

主题:增加行出错

帅哥哟,离线,有人找我吗?
mojo
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:52 积分:1030 威望:0 精华:0 注册:2012/2/26 22:20:00
增加行出错  发帖心情 Post By:2020/2/20 16:41:00 [只看该作者]

子表BeforeAddDataRow限定了增加行的行数

Dim r As Row = Tables("申请单明细").Current
If r IsNot Nothing Then
    If DataTables("申请单明细").Compute("Count(付款申请单编号)","付款申请单编号 = '" & r("付款申请单编号") & "'") >= 5 Then
        e.Cancel = True
        msgbox("明细行数已满,请新增一张凭证")
    End If

满五行后主表DataColChanged有条件增加行代码出错,

调用的目标发生了异常。
未将对象引用设置到对象的实例。

 

Select Case e.DataCol.name
    Case "付款申请编号"
        Dim dr As DataRow = DataTables("申请单明细").Find("付款申请单编号 = '" & e.OldValue & "'")
        Dim dt As DataRow = DataTables("税费").Find("付款申请单编号 = '" & e.OldValue & "'")
              If dr Is Nothing And dt Is Nothing Then
            dr = DataTables("申请单明细").AddNew()
            dt = DataTables("税费").AddNew()
            dr("付款申请单编号") = e.DataRow("付款申请编号")
            dr("申请日期") = e.DataRow("申请日期")
            dr("申请部门") = e.DataRow("申请部门")
            dt("付款申请单编号") = e.DataRow("付款申请编号")
            dt("申请日期") = e.DataRow("申请日期")
            dt("申请部门") = e.DataRow("申请部门")
        Else
            dr("付款申请单编号") = e.DataRow("付款申请编号")
            dt("付款申请单编号") = e.DataRow("付款申请编号")
        End If
    Case "申请日期","申请部门"
        Dim dr As DataRow = DataTables("申请单明细").Find("付款申请单编号 = '" & e.DataRow("付款申请编号") & "'")
        Dim dt As DataRow = DataTables("税费").Find("付款申请单编号 = '" & e.DataRow("付款申请编号") & "'")
        If dr IsNot Nothing And dt IsNot Nothing  Then
            dr(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
            dt(e.DataCol.Name) = e.DataRow(e.DataCol.Name)
        End If
End Select

 

请帮忙看看。

[此贴子已经被作者于2020/2/20 16:44:53编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/20 16:51:00 [只看该作者]

DataColChanged里使用类似的代码判断一下行数,再决定是否添加

 回到顶部