Foxtable(狐表)用户栏目专家坐堂 → [求助]跨表统计某列的和


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

主题:[求助]跨表统计某列的和

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


加好友 发短信
等级:小狐 帖子:349 积分:3600 威望:0 精华:0 注册:2014/4/11 16:05:00
[求助]跨表统计某列的和  发帖心情 Post By:2018/8/13 8:14:00 [只看该作者]

如附件:
1.在增效奖励余额表中的【增效工资投入额】的列中调取 表 增效投入明细表 中当月部门的增效总额合计。
2.想实现表达式 奖励余额= 考勤扣款返款 +内部承包费-阿米巴优秀配套奖励资金1,其中如何设置考勤扣款返款、内部承包费、阿米巴优秀配套奖励资金1没有填写时计算时默认为0值。

请问上述问题代码如何写,如何实现,谢谢
[此贴子已经被作者于2018/8/13 9:09:16编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/13 8:53:00 [只看该作者]

1、附件请发上来;

 

2、跨表统计参考 http://www.foxtable.com/webhelp/scr/1472.htm

 

3、表达式列不计算? http://www.foxtable.com/webhelp/scr/0602.htm

 


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


加好友 发短信
等级:小狐 帖子:349 积分:3600 威望:0 精华:0 注册:2014/4/11 16:05:00
[求助]  发帖心情 Post By:2018/8/13 10:03:00 [只看该作者]

看了提示,已经完成上述问题,还有就是如何筛选出截止目前某一年度最大的月份?谢谢

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


加好友 发短信
等级:小狐 帖子:349 积分:3600 威望:0 精华:0 注册:2014/4/11 16:05:00
  发帖心情 Post By:2018/8/13 11:21:00 [只看该作者]

请问怎么实现调用最大的月份数值?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/13 11:41:00 [只看该作者]

以下是引用wendude在2018/8/13 10:03:00的发言:
看了提示,已经完成上述问题,还有就是如何筛选出截止目前某一年度最大的月份?谢谢

 

你需要这个? http://www.foxtable.com/webhelp/scr/2720.htm

 


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


加好友 发短信
等级:小狐 帖子:349 积分:3600 威望:0 精华:0 注册:2014/4/11 16:05:00
  发帖心情 Post By:2018/8/13 12:01:00 [只看该作者]

不是,我就是想调用【月份】列中的最大值,怎么实现

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


加好友 发短信
等级:小狐 帖子:349 积分:3600 威望:0 精华:0 注册:2014/4/11 16:05:00
  发帖心情 Post By:2018/8/13 12:10:00 [只看该作者]

Select Case e.DataCol.Name
    Case "部门","年份"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow

        If dr.IsNull("部门") OrElse dr.IsNull("年份")  Then
            dr("本年累计余额") = Nothing
            dr("累计总余额") = Nothing
        Else
            Dim filter As String
            filter = "部门 = '" & dr("部门") & "' And 年份 = '" & dr("年份") & "'"
            pr = DataTables("部门余额明细表").Find(filter)
            If pr IsNot Nothing Then
                'dr("截止年月") = pr("月份")
dr("本年累计余额") = DataTables("部门余额明细表").Compute("Sum(月余额)", filter)
dr("累计总余额") = DataTables("部门余额明细表").Compute("Sum(总余额)", filter)
dr("截止年月") = DataTables("部门余额明细表").Compute("Max(" & pr("月份") & ")")
'dr("截止年月") = dt.Compute("Max(" & pr("月份") & ")")

            End If
        End If
End Select


运行这个代码提示:

.NET Framework 版本:2.0.50727.8789
Foxtable 版本:2017.10.26.1
错误所在事件:表,部门总余额累计汇总表,DataColChanged
详细错误信息:
调用的目标发生了异常。
聚合参数中的语法错误: 需要具有可能的“Child”限定符的单个列参数。
错误代码在:
dr("截止年月") = DataTables("部门余额明细表").Compute("Max(" & pr("月份") & ")")


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


加好友 发短信
等级:小狐 帖子:349 积分:3600 威望:0 精华:0 注册:2014/4/11 16:05:00
  发帖心情 Post By:2018/8/13 12:10:00 [只看该作者]

如上

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/8/13 12:22:00 [只看该作者]

这个意思?

 

dr("截止年月") = DataTables("部门余额明细表").Compute("Max(月份)")

 

截图说明表结构,或者做个例子发上来测试。


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


加好友 发短信
等级:小狐 帖子:349 积分:3600 威望:0 精华:0 注册:2014/4/11 16:05:00
  发帖心情 Post By:2018/8/13 12:45:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:部门余额明细表.png
图片点击可在新窗口打开查看



图片点击可在新窗口打开查看此主题相关图片如下:部门总余额累计汇总表.png
图片点击可在新窗口打开查看

想实现的功能:
在表部门总余额累计汇总表中,当输入部门、年份后,其截止年月的列自动调用部门余额明细表中当年的最后月份。
怎么调用,就是调用一下另一张表的最后月份。

我写的代码:
Select Case e.DataCol.Name
    Case "部门","年份"
        Dim dr As DataRow = e.DataRow
        Dim pr As DataRow

        If dr.IsNull("部门") OrElse dr.IsNull("年份")  Then
            dr("本年累计余额") = Nothing
            dr("累计总余额") = Nothing
        Else
            Dim filter As String
            filter = "部门 = '" & dr("部门") & "' And 年份 = '" & dr("年份") & "'"
            pr = DataTables("部门余额明细表").Find(filter)
            If pr IsNot Nothing Then
                'dr("截止年月") = pr("月份")
dr("本年累计余额") = DataTables("部门余额明细表").Compute("Sum(月余额)", filter)
dr("累计总余额") = DataTables("部门余额明细表").Compute("Sum(总余额)", filter)
dr("截止年月") = DataTables("部门余额明细表").Compute("Max(" & pr("月份") & ")")
'dr("截止年月") = dt.Compute("Max(" & pr("月份") & ")")

            End If
        End If
End Select

报错:
.NET Framework 版本:2.0.50727.8789
Foxtable 版本:2017.10.26.1
错误所在事件:表,部门总余额累计汇总表,DataColChanged
详细错误信息:
调用的目标发生了异常。
聚合参数中的语法错误: 需要具有可能的“Child”限定符的单个列参数。
[此贴子已经被作者于2018/8/13 12:46:49编辑过]

 回到顶部
总数 13 1 2 下一页