以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  重置列更新。  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=126916)

--  作者:manyifuwu
--  发布时间:2018/10/30 19:14:00
--  重置列更新。

Select Case e.DataCol.Name
    Case "次数","截止日期","交单","确定","工号"
        Dim Filter As String = "[编号] = \'" & e.DataRow("编号") & "\'"
        DataTables("客户资料").DataCols("编号").RaiseDataColChanged(filter)
End Select

 

这段代码放在派工表事件DataColChanged,能生效。但把派工表在窗口里改为sqltable表后事件DataColChanged也有此代码,不能及时更新。

 

[此贴子已经被作者于2018/10/30 19:25:15编辑过]

--  作者:有点蓝
--  发布时间:2018/10/30 20:28:00
--  
"客户资料"DataColChanged时间里改为从后台获取数据http://www.foxtable.com/webhelp/scr/2897.htm
--  作者:manyifuwu
--  发布时间:2018/10/30 20:52:00
--  

Select Case e.DataCol.name
    Case "注意事项","已做次数","剩余次数","总次数","执行日期"
        Dim drs As List(Of DataRow) = DataTables("派工").Select("[编号] = \'" & e.DataRow("编号") & "\'And 锁定 = False")
        If drs.count = 0 Then
            Dim dr = DataTables("派工").addnew
            dr("注意事项") = e.DataRow("注意事项")
            dr("已做次数") = e.DataRow("已做次数")
            dr("剩余次数") = e.DataRow("剩余次数")
            dr("总次数") = e.DataRow("总次数")
            dr("执行日期") = e.DataRow("执行日期")
        Else
            For Each dr As DataRow In drs
                dr("注意事项") = e.DataRow("注意事项")
                dr("已做次数") = e.DataRow("已做次数")
                dr("剩余次数") = e.DataRow("剩余次数")
                dr("总次数") = e.DataRow("总次数")
                dr("执行日期") = e.DataRow("执行日期")
            Next
        End If
End Select
Select Case e.DataCol.Name
    Case"编号"
        Dim Filter As String = "[编号] = \'" & e.DataRow("编号") & "\'"
        e.DataRow("已做次数") = DataTables("派工").sqlCompute("Sum(次数)", Filter)
        e.DataRow("已派单数") = DataTables("派工").sqlCompute("Sum(派工数量)", Filter)
End Select
If e.DataCol.Name = "总次数" OrElse e.DataCol.Name = "已做次数" Then
    Dim i As Integer
    i = e.DataRow("总次数") - e.DataRow("已做次数")
    If i < 0 Then
        e.DataRow("剩余次数") = 1*i
    Else
        e.DataRow("剩余次数") = 1*i
    End If
End If

代码那出了问题呢?

 

[此贴子已经被作者于2018/10/30 20:57:22编辑过]

--  作者:有点蓝
--  发布时间:2018/10/30 21:17:00
--  
1楼保存一下

Select Case e.DataCol.Name
    Case "次数","截止日期","交单","确定","工号"
e.datarow.save
        Dim Filter As String = "[编号] = \'" & e.DataRow("编号") & "\'"
        DataTables("客户资料").DataCols("编号").RaiseDataColChanged(filter)
End Select

--  作者:有点蓝
--  发布时间:2018/10/30 21:19:00
--  
从前后的代码来看

Case "次数","截止日期","交单","确定","工号"

应该该为

Case "次数","编号","派工数量"

--  作者:manyifuwu
--  发布时间:2018/10/30 21:20:00
--  
还是不行呢?
--  作者:有点蓝
--  发布时间:2018/10/30 21:41:00
--  
Select Case e.DataCol.Name
    Case"编号"
        Dim Filter As String = "[编号] = \'" & e.DataRow("编号") & "\'"
DataTables("派工").save
        e.DataRow("已做次数") = DataTables("派工").sqlCompute("Sum(次数)", Filter)
        e.DataRow("已派单数") = DataTables("派工").sqlCompute("Sum(派工数量)", Filter)
End Select