以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  两个sql表,审批的问题?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=140986)

--  作者:manyifuwu
--  发布时间:2019/9/18 19:54:00
--  两个sql表,审批的问题?

.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2019.9.19.1
错误所在事件:表,财务_Table1,DataColChanged
详细错误信息:
调用的目标发生了异常。
未将对象引用设置到对象的实例。

  初始没有加载这两个表,窗口的两个是sql表,:财务_Table2是客户表,财务_Table1 是订单表。希望:客户有多个订单。所有订单都审后,该客户才审批。怎么实现呢?谢谢!

 

代码是

If e.DataCol.name = "审批" Then
    Dim pr As DataRow = e.DataRow.GetParentRow("财务_Table2")
    If pr IsNot Nothing Then
        Dim crs As List(of DataRow) = pr.GetChildRows("财务_Table1")
        Dim cnt As Integer
        For Each cr As DataRow In crs
            If cr("审批") = True
                cnt = cnt + 1
            End If
        Next
        pr("审批") = (crs.Count = cnt)
    End If
End If

 

\'Select Case e.DataCol.name
    \'Case "审批"
        \'Dim drs As List(Of DataRow) = DataTables("财务_Table2").Select("[派单id] = \'" & e.DataRow("派单id") & "\'")
        \'If drs.count = 0 Then
            \'Dim dr = DataTables("财务_Table2").addnew
            \'dr("审批") = e.DataRow("审批")
        \'Else
            \'For Each dr As DataRow In drs
                \'dr("审批") = e.DataRow("审批")
            \'Next
            \'DataTables("财务_Table2").save   \'即时
            \'If Forms("财务").opened
                \'Dim r As Row = Tables("财务_Table2").Current
                \'r.DataRow.Load()
            \'End If
        \'End If
\'End Select
\'

[此贴子已经被作者于2019/9/18 19:54:44编辑过]

--  作者:有点蓝
--  发布时间:2019/9/19 9:00:00
--  
If e.DataCol.name = "审批" Then
  e.DataRow.save
  dim c1 as integer = e.datatable.sqlcompute("count(审批)", "审批=1 and 编号=\'" & e.DataRow("编号") & "\'")
  dim c2 as integer = e.datatable.sqlcompute("count(审批)", "编号=\'" & e.DataRow("编号") & "\'")
    Dim pr As DataRow = datatables("财务_Table2").find("编号=\'" & e.DataRow("编号") & "\'")
    If pr IsNot Nothing Then
        pr("审批") = (c1 = c2)
    End If
End If