Foxtable(狐表)用户栏目专家坐堂 → [求助] 表A 填入数据时,数据自动写入表B


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

主题:[求助] 表A 填入数据时,数据自动写入表B

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


加好友 发短信
等级:童狐 帖子:255 积分:2152 威望:0 精华:0 注册:2013/6/8 22:41:00
[求助] 表A 填入数据时,数据自动写入表B  发帖心情 Post By:2017/6/16 18:37:00 [只看该作者]

If e.DataCol.Name = "存款客户" OrElse e.DataCol.Name = "客户ID" Then
    If e.DataRow("存款客户") <> Nothing AndAlso e.DataRow("客户ID") <> Nothing Then
        Dim r2 As DataRow = DataTables("UserYE").Find("客户ID = '" & e.DataRow("客户ID") & "'")
        If r2 IsNot Nothing Then '如果不为空,则在原来的数量上加上新的数量
            r2("客户余额") = r2("客户余额") + e.DataRow("存款金额")
            r2.Save
        Else
            Dim r3 As Row = Tables("UserYE").AddNew '否则新增一行 
           r3("客户ID") = e.DataRow("客户ID")
           r3("客户名称") = e.DataRow("存款客户")
           r3("客户余额") = e.DataRow("存款金额")
            r3.Save
        End If
    End If
End If

 

下面是图片,客户ID 和客户名称都写过来了,就金额 没写过来

 


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

图片点击可在新窗口打开查看此主题相关图片如下:2.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2017/6/16 18:40:46编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
bootes29
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:214 积分:1386 威望:0 精华:0 注册:2017/5/13 15:13:00
  发帖心情 Post By:2017/6/16 18:47:00 [只看该作者]

例子发上来

 回到顶部
帅哥哟,离线,有人找我吗?
静听枫雨
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:255 积分:2152 威望:0 精华:0 注册:2013/6/8 22:41:00
  发帖心情 Post By:2017/6/16 19:05:00 [只看该作者]

代码,应该是没错吧

 回到顶部
帅哥哟,离线,有人找我吗?
2900819580
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1348 积分:9833 威望:0 精华:0 注册:2015/6/30 8:46:00
  发帖心情 Post By:2017/6/16 19:25:00 [只看该作者]

有以下问题,

1、经常变动的应该只有存款金额,建议你第一行改为If e.DataCol.Name = "存款金额" then

2、r2("客户余额") = r2("客户余额") + e.DataRow("存款金额")  当你的客户ID或客户名称修改时,就会再次累加r2("客户余额")
3、第二行需要改成:If e.DataRow.IsNull("存款客户") = False AndAlso e.DataRow.IsNull("客户ID") = False Then

 

 

 

If e.DataCol.Name = "存款客户" OrElse e.DataCol.Name = "客户ID" Then
    If e.DataRow("存款客户") <> Nothing AndAlso e.DataRow("客户ID") <> Nothing Then
        Dim r2 As DataRow = DataTables("UserYE").Find("客户ID = '" & e.DataRow("客户ID") & "'")
        If r2 IsNot Nothing Then '如果不为空,则在原来的数量上加上新的数量
            r2("客户余额") = r2("客户余额") + e.DataRow("存款金额")
            r2.Save
        Else
            Dim r3 As Row = Tables("UserYE").AddNew '否则新增一行 
           r3("客户ID") = e.DataRow("客户ID")
           r3("客户名称") = e.DataRow("存款客户")
           r3("客户余额") = e.DataRow("存款金额")
            r3.Save
        End If
    End If
End If


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/16 20:35:00 [只看该作者]

应该使用Compute进行合计,而不是进行累加

r2("客户余额") = e.Datatable.Compute("sum(存款金额)","关联条件")

 回到顶部
帅哥哟,离线,有人找我吗?
静听枫雨
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:255 积分:2152 威望:0 精华:0 注册:2013/6/8 22:41:00
  发帖心情 Post By:2017/6/16 20:57:00 [只看该作者]

关联条件 怎么写。以客户ID一样就行吗?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110813 积分:564003 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2017/6/16 21:02:00 [只看该作者]

参考Find的用法

 回到顶部
帅哥哟,离线,有人找我吗?
静听枫雨
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:255 积分:2152 威望:0 精华:0 注册:2013/6/8 22:41:00
  发帖心情 Post By:2017/6/16 21:05:00 [只看该作者]

谢谢,有点蓝版主和2900819580  指导。  有点蓝老师,不能使用您说的累计,累计在删除的情况下金额会重新统计,然后再写到客户余额里,这样就不对了。

If e.DataCol.Name = "存款金额" Then
   If e.DataRow.IsNull("存款客户") = False AndAlso e.DataRow.IsNull("客户ID") = False Then
        Dim dt As Date = Date.Now
        Dim r2 As DataRow = DataTables("UserYE").Find("客户ID = '" & e.DataRow("客户ID") & "'")
        If r2 IsNot Nothing Then '如果不为空,则在原来的数量上加上新的数量
            r2("客户余额") = r2("客户余额") + e.DataRow("存款金额")
            r2("更新日期") = dt
            r2.Save
        Else
            Dim r3 As Row = Tables("UserYE").AddNew '否则新增一行
            r3("客户ID") = e.DataRow("客户ID")
            r3("客户名称") = e.DataRow("存款客户")
            r3("客户余额") = e.DataRow("存款金额")
            r3("更新日期") = dt
            r3.Save
        End If
    End If

帅哥,在线噢!
[此贴子已经被作者于2017/6/16 21:32:03编辑过]

 回到顶部