Foxtable(狐表)用户栏目专家坐堂 → 循环引用计算


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

主题:循环引用计算

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


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
循环引用计算  发帖心情 Post By:2019/12/30 13:38:00 [只看该作者]

老师,table中循环引用计算了,请老师看看,该怎么修改

Select Case e.DataCol.Name
    Case "是否使用风险金","本次使用风险金","剩余风险金","保证金金额"
        Dim ds As DataRow = dt1.Find("所属机构 = '" & e.DataRow("所属机构") & "' and 经营状态 = '正常'")
        If ds IsNot Nothing Then
            e.DataRow("剩余风险金") = ds("剩余风险金")
            If e.DataRow("是否使用风险金") = True Then
                e.DataRow("本次使用风险金") = e.DataRow("保证金金额")
                If  e.DataRow("本次使用风险金") > e.DataRow("剩余风险金") Then
                    MessageBox.Show("剩余风险金不足以支付本次保证金,请现金转账支付本次保证金!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                    e.DataRow("是否使用风险金") = False
                    e.DataRow("本次使用风险金") = Nothing
                Else
                    e.DataRow("剩余风险金") = ds("剩余风险金") - e.DataRow("本次使用风险金")
                End If
            Else
                e.DataRow("是否使用风险金") = False
                e.DataRow("本次使用风险金") = Nothing
            End If
        Else
            MessageBox.Show("你未缴纳风险金,不能使用风险金!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.DataRow("是否使用风险金") = False
            e.DataRow("剩余风险金") = Nothing
        End If
End Select

 


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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/30 13:49:00 [只看该作者]

没看懂,这段代码想要干嘛?使用文字详细描述一下

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


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/12/30 14:14:00 [只看该作者]

前面少 一段代码

 

Dim cmd1 As New SQLCommand
Dim dt1 As DataTable
cmd1.C
cmd1.CommandText = "S  ELECT DISTINCT 所属机构,承包风险金,剩余风险金,经营状态 From {分支机构管理}"
dt1 = cmd1.ExecuteReader()

 

如果使用风险金时,在在dt1中查找相同“所属机构”且状态为“正常”的分支机构,

找到后

本表的“剩余风险金” = dt1中“剩余风险金”

如果使用了风险金,剩余风险金= 总的剩余风险金-本次使用的风险金

 

执行完成后还需要将剩余风险金写入到“dt1”中剩余风险金

[此贴子已经被作者于2019/12/30 14:16:45编辑过]

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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/30 14:38:00 [只看该作者]

如果使用风险金时,在在dt1中查找相同“所属机构”且状态为“正常”的分支机构,

找到后

本表的“剩余风险金” = dt1中“剩余风险金”

如果使用了风险金,剩余风险金= 总的剩余风险金-本次使用的风险金


这个2个条件相同,到底计算哪个?


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


加好友 发短信
等级:狐精 帖子:3106 积分:20733 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2019/12/30 14:46:00 [只看该作者]

第一个是需要知道剩余风险金金额,所以找到后就执行

第二个是当是否使用风险金=true才计算,现在增加了一列辅助列,还是循环的

 

Dim cmd1 As New SQLCommand
Dim dt1 As DataTable
cmd1.C
cmd1.CommandText = "S  ELECT DISTINCT 所属机构,承包风险金,剩余风险金,经营状态 From {分支机构管理}"
dt1 = cmd1.ExecuteReader()

Select Case e.DataCol.Name
    Case "是否使用风险金","本次使用风险金","剩余风险金","保证金金额"
        Dim ds As DataRow = dt1.Find("所属机构 = '" & e.DataRow("所属机构") & "' and 经营状态 = '正常'")
        If ds IsNot Nothing Then
            e.DataRow("剩余风险金") = ds("剩余风险金")
            If e.DataRow("是否使用风险金") = True Then
                e.DataRow("本次使用风险金") = e.DataRow("保证金金额")
                If  e.DataRow("本次使用风险金") > e.DataRow("剩余风险金") Then
                    MessageBox.Show("剩余风险金不足以支付本次保证金,请现金转账支付本次保证金!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
                    e.DataRow("是否使用风险金") = False
                    e.DataRow("本次使用风险金") = Nothing
                Else
                    e.DataRow("本次剩余风险金") = ds("剩余风险金") - e.DataRow("本次使用风险金")
                End If
            Else
                e.DataRow("是否使用风险金") = False
                e.DataRow("本次使用风险金") = Nothing
            End If
        Else
            MessageBox.Show("你未缴纳风险金,不能使用风险金!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            e.DataRow("是否使用风险金") = False
            e.DataRow("剩余风险金") = Nothing
        End If
End Select

Dim cmd2 As New SQLCommand
cmd2.C
cmd2.CommandText = "U  PDATE {分支机构管理} SET 剩余风险金 = " & e.DataRow("本次剩余风险金") & " WHERE 所属机构 = '" & e.DataRow("所属机构") & "' and 经营状态 = '正常'"
cmd2.ExecuteNonQuery()


 

[此贴子已经被作者于2019/12/30 14:54:18编辑过]

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


加好友 发短信
等级:超级版主 帖子:107813 积分:548416 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/12/30 15:01:00 [只看该作者]

Case "是否使用风险金","本次使用风险金","剩余风险金","保证金金额"

改为

Case "是否使用风险金","保证金金额"

 回到顶部