以文本方式查看主题

-  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=111259)

--  作者:xh2207
--  发布时间:2017/12/18 21:51:00
--  [求助]累计逻辑

 

请教:

表A      累计合同数量为统计品名、型号规格合同数量累计值

请问:如何在DataColChanging事件中写代码控制填入合同数量值后累计合同数量不能大于需求数量(累计数量等于个合同数量和),小狗到期,请将代码列出,感谢!

 

DataColChanged的代码如下:

 

If e.DataCol.Name = "合同数量" Then
    Dim sum = DataTables("表A").Compute("Sum(合同数量)","品名 = \'" & e.DataRow("品名")  & "\'and 型号规格 = \'" & e.DataRow("型号规格")  & "\'")
    e.DataTable.ReplaceFor("累计合同数量", sum, "品名 = \'" & e.DataRow("品名")  & "\'and 型号规格 = \'" & e.DataRow("型号规格")  & "\'")
End If

 

DataRowDeleting代码如下:

配合datacolchanged的统计代码,实行对合同数量进行统计
e.DataRow("合同数量") = 0
Dim sum = DataTables("表A").Compute("Sum(合同数量)","品名 = \'" & e.DataRow("品名")  & "\'and 型号规格 = \'" & e.DataRow("型号规格")  & "\'")
DataTables("表A").ReplaceFor("累计合同数量", sum, "品名 = \'" & e.DataRow("品名")  & "\'and 型号规格 = \'" & e.DataRow("型号规格")  & "\'")

 


此主题相关图片如下:表a.png
按此在新窗口浏览图片

 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目72_201712182148.zip


--  作者:xh2207
--  发布时间:2017/12/18 22:03:00
--  

原考虑DataColChanging如下,不完善的,请赐教。感激

 

Dim dr As DataRow = e.DataRow
If e.DataCol.Name = "合同数量" Then \'如果是折扣列的内容发生变化.
    If dr("需求数量") >= dr("合同数量") Then
        If ( e.NewValue - e.oldvalue+dr("累计合同数量") ) > e.DataRow("需求数量") \'如果新值大于需求数量
            e.Cancel = True \'取消变动.
            MessageBox.Show("输入后累计数不能大于需求数量!")
        End If
    End If
End If


--  作者:有点蓝
--  发布时间:2017/12/18 22:08:00
--  
DataColChanging事件

If e.DataCol.Name = "合同数量" Then
    Dim sum = DataTables("表A").Compute("Sum(合同数量)","品名 = \'" & e.DataRow("品名")  & "\'and 型号规格 = \'" & e.DataRow("型号规格")  & "\'")
    sum = sum + e.NewValue - e.OldValue
    If sum > e.DataRow("需求数量")  Then
        msgbox("累计合同数量不能大于需求数量")
        e.Cancel = True
    End If
End If

--  作者:xh2207
--  发布时间:2017/12/19 8:39:00
--  

明白了,是数据精度(小数点后位数有效值)的问题。

 


图片点击可在新窗口打开查看此主题相关图片如下:11.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/12/19 8:44:35编辑过]