以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  跨表统计自动更新问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=117729)

--  作者:13775189031
--  发布时间:2018/4/18 11:35:00
--  跨表统计自动更新问题
合同台账
If e.DataCol.Name = "内部合同编号" Then 
    Dim Filter As String = "[内部合同编号] = \'" & e.NewValue & "\'"
    e.DataRow("入库金额合计") = DataTables("入库信息").Compute("Sum(当月入库金额)", Filter)
 End If

If e.DataCol.Name = "内部合同编号" Then 
    Dim Filter As String = "[内部合同编号] = \'" & e.NewValue & "\'"
    e.DataRow("销售合计") = DataTables("货款回笼信息").Compute("Sum(开票金额)", Filter)
    e.DataRow("到款合计") = DataTables("货款回笼信息").Compute("Sum(到款金额)", Filter) 
End If

入库信息
Select Case e.DataCol.Name
    Case "当月入库金额"
        Dim pr As DataRow
        pr = DataTables("合同台帐").Find("内部合同编号 = \'" & e.DataRow("内部合同编号") & "\'")
        If pr IsNot Nothing Then
            DataTables("合同台帐").DataCols("内部合同编号").RaiseDataColChanged(pr)
        End If
End Select

货款回笼信息
Select Case e.DataCol.Name
    Case "到款金额","开票金额"
        Dim pr As DataRow
        pr = DataTables("合同台帐").Find("内部合同编号 = \'" & e.DataRow("内部合同编号") & "\'")
        If pr IsNot Nothing Then
            DataTables("合同台账").DataCols("内部合同编号").RaiseDataColChanged(pr)
        End If
End Select

入库信息和货款回笼信息有更新后,进入合同台帐必须要重置内部合同编号列,其入库金额合计、销售合计和到款合计才能更新,怎样才能只需切换到合同台账表就能自动更新?

另外入库信息表没问题,但货款回笼信息表错误提示:不存在名为“合同台帐”的Date table!
.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.3.9.1
错误所在事件:表,货款回笼信息,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。
是什么原因?





--  作者:有点甜
--  发布时间:2018/4/18 11:42:00
--  

1、【不存在名为“合同台帐”的Datatable】,说明你表名写错了,请确定你表格的名称是什么。

 

2、你可以去编写maintableChanged事件,类似 http://www.foxtable.com/webhelp/scr/1454.htm

 


--  作者:13775189031
--  发布时间:2018/4/18 12:07:00
--  
是“合同台帐”啊,入库信息里也一样,就没问题啊?


--  作者:13775189031
--  发布时间:2018/4/18 12:09:00
--  
If MainTable.Name = "合同台帐" Then
    DataTables("合同台帐").DataCols("内部合同编号").RaiseDataColChanged()
End If

把这段加到maintableChanged事件里了,还是不行!




--  作者:有点甜
--  发布时间:2018/4/18 12:10:00
--  
以下是引用13775189031在2018/4/18 12:07:00的发言:
是“合同台帐”啊,入库信息里也一样,就没问题啊?

 

Select Case e.DataCol.Name
    Case "到款金额","开票金额"
        Dim pr As DataRow
        pr = DataTables("合同台").Find("内部合同编号 = \'" & e.DataRow("内部合同编号") & "\'")
        If pr IsNot Nothing Then
            DataTables("合同台").DataCols("内部合同编号").RaiseDataColChanged(pr)
        End If
End Select

--  作者:13775189031
--  发布时间:2018/4/18 12:40:00
--  
晕死!
谢谢啊!