以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]DataColChanged调用的目标发生了异常  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123950)

--  作者:seal51
--  发布时间:2018/8/27 18:23:00
--  [求助]DataColChanged调用的目标发生了异常
.NET Framework 版本:2.0.50727.8833
Foxtable 版本:2018.8.29.1
错误所在事件:表,报价明细表,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。




\'报价明细表里的所有项已订购都打钩后, 报价主表里的已订购自动打钩
\'报价明细表里的所有项已订购都打钩后, 报价主表里的已订购自动打钩, 发现报价明细表里有一项未订购,去掉勾后报价主表的已订购自动去掉勾勾 
If e.DataCol.name="已报价" Then
    Dim xdList As List(of DataRow)=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") & "\'and 已报价=true")
    If xdList.count=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") &"\'").count Then
        e.DataRow.GetParentRow("报价主表")("已报价")=True
    Else
        e.DataRow.GetParentRow("报价主表")("已报价")=False
    End If
End If

If e.DataCol.name="已订购" Then
    Dim xdList As List(of DataRow)=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") & "\'and 已订购=true")
    If xdList.count=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") &"\'").count Then
        e.DataRow.GetParentRow("报价主表")("已订购")=True
    Else
        e.DataRow.GetParentRow("报价主表")("已订购")=False
    End If
End If

--  作者:有点甜
--  发布时间:2018/8/27 18:37:00
--  


If e.DataCol.name="已报价" Then
    Dim pdr = e.DataRow.GetParentRow("报价主表")
    If pdr IsNot Nothing Then
        Dim xdList As List(of DataRow)=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") & "\'and 已报价=true")
        If xdList.count=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") &"\'").count Then
           
            pdr("已报价")=True
        Else
            pdr("已报价")=False
        End If
    End If
End If


If e.DataCol.name="已订购" Then
    Dim pdr = e.DataRow.GetParentRow
    If pdr IsNot Nothing Then
        Dim xdList As List(of DataRow)=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") & "\'and 已订购=true")
        If xdList.count=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") &"\'").count Then
            pdr("已订购")=True
        Else
            pdr("已订购")=False
        End If
    End If
End If


--  作者:seal51
--  发布时间:2018/8/27 18:45:00
--  

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

--  作者:seal51
--  发布时间:2018/8/27 18:46:00
--  
知道错在哪里了, 谢谢!
--  作者:seal51
--  发布时间:2018/8/27 18:50:00
--  
正确的如下,回复记录一下!谢谢老师!

If e.DataCol.name="已报价" Then
    Dim pdr = e.DataRow.GetParentRow("报价主表")
    If pdr IsNot Nothing Then
        Dim xdList As List(of DataRow)=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") & "\'and 已报价=true")
        If xdList.count=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") &"\'").count Then
            
            pdr("已报价")=True
        Else
            pdr("已报价")=False
        End If
    End If
End If

If e.DataCol.name="已订购" Then
    Dim pdr = e.DataRow.GetParentRow("报价主表")
    If pdr IsNot Nothing Then
        Dim xdList As List(of DataRow)=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") & "\'and 已订购=true")
        If xdList.count=e.DataTable.Select("工作号=\'" & e.DataRow("工作号") &"\'").count Then
            pdr("已订购")=True
        Else
            pdr("已订购")=False
        End If
    End If
End If