Foxtable(狐表)用户栏目专家坐堂 → [求助]累计逻辑


  共有1902人关注过本帖树形打印复制链接

主题:[求助]累计逻辑

帅哥哟,离线,有人找我吗?
xh2207
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:190 积分:1593 威望:0 精华:0 注册:2013/1/6 19:46:00
[求助]累计逻辑  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:190 积分:1593 威望:0 精华:0 注册:2013/1/6 19:46:00
  发帖心情 Post By: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


 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105470 积分:536335 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:190 积分:1593 威望:0 精华:0 注册:2013/1/6 19:46:00
  发帖心情 Post By:2017/12/19 8:39:00 [只看该作者]

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

 


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

 回到顶部