以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  统计表刷新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=192241)

--  作者:wlj88868
--  发布时间:2024/6/5 9:06:00
--  统计表刷新

If e.DataCol.Name = "管辖部门" Then
    Dim Filter As String = "[管辖部门] = \'" & e.NewValue & "\'"
    e.DataRow("数量") = DataTables("销售资料").sqlCompute("Sum(数量)", Filter)
    e.DataRow("金额") = DataTables("销售资料").sqlCompute("Sum(吊牌单价*数量)", Filter)
    e.DataRow("销售金额") = DataTables("销售资料").sqlCompute("Sum(销售单价*数量)", Filter)
    e.DataRow("入库数量") = DataTables("采购明细").sqlCompute("Sum(数量)", Filter)
    e.DataRow("入库金额") = DataTables("采购明细").sqlCompute("Sum(数量*单价)", Filter)
    e.DataRow("出库数量") = DataTables("出库明细").sqlCompute("Sum(数量)", Filter)
    e.DataRow("出库金额") = DataTables("出库明细").sqlCompute("Sum(数量*单价)", Filter)
    e.DataRow("退货数量") = DataTables("退货明细").sqlCompute("Sum(数量)", Filter)
    e.DataRow("退货金额") = DataTables("退货明细").sqlCompute("Sum(数量*单价)", Filter)
End If

老师sqlcomputer 为什么在销售资料数量发生变化不会跟新,用Compute就马上更新了,,但是金额是单价*数量的,又不能用computer会报错,,这个是怎么解决的

 

这句是在销售表里刷新统计表的

Select Case e.DataCol.Name
Case "数量" , "销售单价", "条码"
    Dim tj As DataRow
    tj = DataTables("统计表").Find("管辖部门 = \'" & e.DataRow("管辖部门") & "\'")
    If tj IsNot Nothing Then
            DataTables("统计表").DataCols("管辖部门").RaiseDataColChanged(tj)
    End If
End Select


--  作者:有点蓝
--  发布时间:2024/6/5 9:12:00
--  
数据没有保存。sqlCompute只能取后台已经保存的数据


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


--  作者:wlj88868
--  发布时间:2024/6/5 9:32:00
--  

OK想了一个办法,,在销售表刷新前面加了一句保存表,,这样用是不是有弊端啊,,数据变动就保存表了会不会卡死

DataTables("销售资料").Save()
Select Case e.DataCol.Name
Case "数量" , "销售单价", "条码"
    Dim tj As DataRow
    tj = DataTables("统计表").Find("管辖部门 = \'" & e.DataRow("管辖部门") & "\'")
    If tj IsNot Nothing Then
            DataTables("统计表").DataCols("管辖部门").RaiseDataColChanged(tj)
    End If
End Select


--  作者:有点蓝
--  发布时间:2024/6/5 9:37:00
--  
不会卡死。测试不就知道了