Foxtable(狐表)用户栏目专家坐堂 → 跨表统计及判断取值


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

主题:跨表统计及判断取值

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


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


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


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

 上传对应实例测试。

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


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

默认是根据_Sortkey列排序的,你现在想根据期数列排序?

 

'累计计量?扣款?支付
Select Case  e.DataCol.Name
    Case  "项目编码","申请金额","本期_累计扣款","实际支付金额",    "企业所得税率","个人所得税基数","个人所得税率","管理费费率" , "手续费","安全保证金","质量保证金","应急保证金","资料保证金","fa piao金额","到账金额","成本fa piao","人工工资","其他费用","抵扣增值税","现金补税","预交增值税","应补增值税","管理费","应扣费用明细_小计","实际支付金额","本期_累计扣款","成本差额税率","成本差额税","扣税明细_小计","成本差额"
        Dim  dr As  DataRow
        Dim  mr As  DataRow = e.DataRow
        Dim  drs As  List(of DataRow)
        dr = e.DataTable.Find("[计量期数] < " & mr("计量期数") &  " And [项目编码] = '" &  mr("项目编码") &  "'", "[计量期数] Desc")
        If dr Is Nothing Then
            mr("累计_计量金额") = mr("申请金额")
            mr("累计_扣款金额") = mr("本期_累计扣款")
            mr("累计_支付金额") = mr("实际支付金额")  '("申请金额") - mr("本期_累计扣款")
            dr = mr
        End If
        drs = e.DataTable.Select("[计量期数] >= " & dr("计量期数") &  " And [项目编码] = '" &  dr("项目编码") &  "'", "[计量期数]")
        For  i As  Integer = 1 To drs.Count - 1
            drs(i)("累计_计量金额") = drs(i-1)("累计_计量金额") + drs(i)("申请金额")
            drs(i)("累计_扣款金额") = drs(i-1)("累计_扣款金额") + drs(i)("本期_累计扣款")         '+ drs(i)("申请金额") - drs(i)("本期_累计扣款")
            drs(i)("累计_支付金额") = drs(i-1)("累计_支付金额") + drs(i)("实际支付金额")
        Next
        If  e.DataCol.Name = "项目编码" AndAlso e.OldValue IsNot Nothing AndAlso e.OldValue <> e.NewValue Then
            dr = e.DataTable.Find("[计量期数] < " & mr("计量期数") &  " And [项目编码] = '" &  e.OldValue &  "'", "[计量期数] Desc")
            If  dr Is Nothing Then
                dr = e.DataTable.Find("[项目编码] = '" & e.OldValue &  "'", "[计量期数]")
                If dr IsNot Nothing Then
                    dr("累计_计量金额") = dr("申请金额")
                    dr("累计_扣款金额") = dr("本期_累计扣款")
                    dr("累计_支付金额") = dr("实际支付金额")    ' dr("申请金额") - dr("本期_累计扣款")
                End If
            End If
            If  dr IsNot Nothing Then
                drs = e.DataTable.Select("[计量期数] >= " & dr("计量期数") &  " And [项目编码] = '" &  dr("项目编码") &  "'", "[计量期数]")
                For i As Integer = 1 To drs.Count - 1
                    drs(i)("累计_计量金额") = drs(i-1)("累计_计量金额") + drs(i)("申请金额")
                    drs(i)("累计_扣款金额") = drs(i-1)("累计_扣款金额") + drs(i)("本期_累计扣款")         '+ drs(i)("申请金额") - drs(i)("本期_累计扣款")
                    drs(i)("累计_支付金额") = drs(i-1)("累计_支付金额") + drs(i)("实际支付金额")
                Next
            End If
        End If
End Select


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


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

参考7楼代码修改。把_sortkey替换成你的排序列。

[此贴子已经被作者于2017/9/25 16:03:36编辑过]

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


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

你的列【计量期数】是不是有空值?

 

改成字符列,加上单引号 ("[计量期数] >= '" & dr("计量期数") &  "' And [项目编码] = '" &  dr("项目编码") &  "'", "[计量期数]")


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


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

 例子发上来测试。

 回到顶部