以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求:删除“积分兑换明细”表中的记录,客户资料表和积分礼品表中相关字段值应该相应调整,怎么实现?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=55660)

--  作者:ahbrq
--  发布时间:2014/8/20 23:44:00
--  [求:删除“积分兑换明细”表中的记录,客户资料表和积分礼品表中相关字段值应该相应调整,怎么实现?
[求:删除“积分兑换明细”表中的记录,客户资料表(兑换积分和剩余积分)和积分礼品表中“已使用”和“实际库存”相关字段值应该相应调整,怎么实现?
--  作者:Bin
--  发布时间:2014/8/21 8:32:00
--  
你想怎么调整?
--  作者:有点甜
--  发布时间:2014/8/21 9:13:00
--  

 简单一点的话,你在删除事件DataRowDeleted加入代码重置列。

 

 http://www.foxtable.com/help/topics/1587.htm

 


--  作者:ahbrq
--  发布时间:2014/8/21 21:47:00
--  

例如:在“积分兑换明细”表中,发现牛勇这行不对,把该行删除了,那么:“客户资料”表中的“兑换积分”和“剩余积分”就要变化;同时“积分礼品”表中

 

的“电脑包”“已使用”和“库存”也要发生变化。如何实现呢?


--  作者:有点甜
--  发布时间:2014/8/21 21:50:00
--  

重置列不行?重新计算。

 

不会做,就请上传例子说明问题。


--  作者:ahbrq
--  发布时间:2014/8/21 22:03:00
--  

上传例子大于2046K不可以,怎么办?

 

我在“积分兑换明细”表的datarowdeleted时间中加入以下代码:

 

DataTables("客户资料").DataCols("兑换积分").RaiseDataColChanged()

DataTables("客户资料").DataCols("剩余积分").RaiseDataColChanged()

DataTables("积分礼品").DataCols("已使用").RaiseDataColChanged()

DataTables("积分礼品").DataCols("实际库存").RaiseDataColChanged()

 

目的就是重置相关数据表的相关列,但是操作没有效果。什么原因?

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目08015.rar

[此贴子已经被作者于2014-8-21 22:23:36编辑过]

--  作者:有点甜
--  发布时间:2014/8/21 22:04:00
--  
 如果重置列不行,就是原本写的代码不规范,例子发上来。
--  作者:ahbrq
--  发布时间:2014/8/26 21:01:00
--  

例子上传了,请高手指点


--  作者:有点甜
--  发布时间:2014/8/26 21:13:00
--  

DataRowDeleting事件,代码

 

Dim fdr As DataRow = DataTables("积分礼品").Find("礼品名称 = \'" & e.DataRow("礼品名称") & "\'")
If fdr IsNot Nothing Then
    fdr("已使用") -= e.DataRow("数量")
End If

fdr = DataTables("客户资料").Find("客户名称 = \'" & e.DataRow("客户名称") & "\'")
If fdr IsNot Nothing Then
    fdr("兑换积分") -= e.DataRow("数量")
End If


--  作者:ahbrq
--  发布时间:2014/8/26 21:33:00
--  

为什么在DATAROWDELETING 里可以,在DATAROWDELETED中就出错呢?

 

代码应该是:

 

Dim fdr As DataRow = DataTables("积分礼品").Find("礼品名称 = \'" & e.DataRow("礼品名称") & "\'")
If fdr IsNot Nothing Then
    fdr("已使用") -= e.DataRow("数量")
End If

fdr = DataTables("客户资料").Find("客户名称 = \'" & e.DataRow("客户名称") & "\' and    身份证号码 = \'" & e.DataRow("身份证号码") & "\'   ")
If fdr IsNot Nothing Then
    fdr("兑换积分") -= e.DataRow("兑换积分")
End If

 

对么?