以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  多字段跨表计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=108793)

--  作者:wakai
--  发布时间:2017/10/29 17:59:00
--  多字段跨表计算
包材合同,合同明细表两个
实现合同中列的总额等于明细表金额的sum,有两个关联列,申请编号,包材合同编号
现在存在问题是,只按申请编号分组求和,没有按申请编号+包材合同编号进行分组求和,请问要怎么写,现在代码如下,
包材合同
Select Case e.DataCol.Name
        Case  "申请编号","包材合同编号"
        Dim Filter3 As String  = "申请编号 = " & e.DataRow("申请编号")\'\' )
        e.DataRow("总额") = DataTables("合同_包材申请明细表").Compute("Sum(金额)", Filter3)
End Select

合同明细表
Select Case e.DataCol.Name
    Case "采购数量","单价"
        If e.OldValue <> e.NewValue Then
            Dim pr As DataRow
            pr = DataTables("合同_包材合同").Find("[申请编号] = " & e.DataRow("申请编号") 
            If pr IsNot Nothing Then
                DataTables("合同_包材合同").DataCols("申请编号").RaiseDataColChanged(pr)
            End If
        End If
End Select
[此贴子已经被作者于2017/10/29 18:03:12编辑过]

--  作者:有点甜
--  发布时间:2017/10/29 21:22:00
--  

比如

 

Select Case e.DataCol.Name
        Case  "申请编号","包材合同编号"
        Dim Filter3 As String  = "申请编号 = \'" & e.DataRow("申请编号") & "\' and 包材合同编号 = \'" & e.DataRow("包材合同编号") & "\'"
        e.DataRow("总额") = DataTables("合同_包材申请明细表").Compute("Sum(金额)", Filter3)
End Select

--  作者:wakai
--  发布时间:2017/10/29 23:18:00
--  
.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2017.8.19.1
错误所在事件:表,合同_合同明细表,DataColChanged
详细错误信息:
调用的目标发生了异常。
从字符串“[申请编号] = 34”到类型“Long”的转换无效。
输入字符串的格式不正确。


--  作者:有点甜
--  发布时间:2017/10/30 0:10:00
--  
贴出你写的代码。