Foxtable(狐表)用户栏目专家坐堂 → [原创]如何以金额拆分一行变多行


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

主题:[原创]如何以金额拆分一行变多行

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/22 16:41:00 [显示全部帖子]

参考

 

Dim dt As DataTable = DataTables("表B")
For Each dr As DataRow In dt.Select("第六列 is null")
    Dim sum = val(dr("第五列"))
    If sum > 80000 Then
        Dim dr1 As DataRow = dt.AddNew
        dr1("第一列") = dr("第一列")
        dr1("第五列") = sum / 3
        dr1("第六列") = dr("_Identify")
        Dim dr2 As DataRow = dt.AddNew
        dr2("第一列") = dr("第一列")
        dr2("第五列") = sum / 3
        dr2("第六列") = dr("_Identify")
        Dim dr3 As DataRow = dt.AddNew
        dr3("第一列") = dr("第一列")
        dr3("第五列") = sum - sum / 3 * 2
        dr3("第六列") = dr("_Identify")
    ElseIf sum > 40000 Then
        Dim dr1 As DataRow = dt.AddNew
        dr1("第一列") = dr("第一列")
        dr1("第五列") = sum / 2
        dr1("第六列") = dr("_Identify")
        Dim dr3 As DataRow = dt.AddNew
        dr3("第一列") = dr("第一列")
        dr3("第五列") = sum - sum / 2
        dr3("第六列") = dr("_Identify")
    End If
Next


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/22 16:42:00 [显示全部帖子]

请具体说明一下计算逻辑,看不懂你的数据。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/1/22 16:57:00 [显示全部帖子]

参考

 

Dim dt As DataTable = DataTables("表B")
For Each dr As DataRow In dt.Select("第六列 is null and 第一列 is not null")
    Dim sum = val(dr("第五列"))
    Dim lj As Double = 0
    If sum > 80000 Then
        Dim dr1 As DataRow = dt.AddNew
        dr1("第一列") = dr("第一列")
        Dim v = rand.Next(0, sum*100)
        dr1("第五列") = v / 100
        lj += v / 100
        dr1("第六列") = dr("_Identify")
        Dim dr2 As DataRow = dt.AddNew
        dr2("第一列") = dr("第一列")
        v = rand.Next(0, (sum-lj)*100)
        dr2("第五列") = v / 100
        lj += v / 100
        dr2("第六列") = dr("_Identify")
        Dim dr3 As DataRow = dt.AddNew
        dr3("第一列") = dr("第一列")
        dr3("第五列") = sum - lj
        dr3("第六列") = dr("_Identify")
    ElseIf sum > 40000 Then
        Dim dr1 As DataRow = dt.AddNew
        dr1("第一列") = dr("第一列")
        Dim v = rand.Next(0, sum*100)
        dr1("第五列") = v / 100
        lj += v / 100
        dr1("第六列") = dr("_Identify")
        Dim dr3 As DataRow = dt.AddNew
        dr3("第一列") = dr("第一列")
        dr3("第五列") = sum - lj
        dr3("第六列") = dr("_Identify")
    Else
        Dim dr1 As DataRow = dt.AddNew
        dr1("第一列") = dr("第一列")
        dr1("第五列") = dr("第五列")
        dr1("第六列") = dr("_Identify")       
    End If
Next


 回到顶部