找回密码
 立即注册

QQ登录

只需一步,快速开始

shapphhe

注册会员

18

主题

57

帖子

199

积分

注册会员

积分
199
shapphhe
注册会员   /  发表于:2017-10-17 11:39  /   查看:4216  /  回复:3
你好,我在C1FlexGrid中把数据分组显示

并且在某些列使用了this.flexGrid.Aggregate(AggregateEnum.Sum,  range.r1, colIndex, range.r2, colIndex,  AggregateFlags.ExcludeNodes);
来计算列的合计值。
如果我使用FlexGrid的过滤功能,隐藏了几行,此时想从新计算该列的合计值,不计算隐藏的行,请问怎样处理呢?谢谢!

private void AddSubtotals(string columnName)
        {
            int colIndex = this.flexGrid.Cols.IndexOf(columnName);//
            for (int r = this.flexGrid.Rows.Fixed; r < this.flexGrid.Rows.Count; r++)
            {
                if (this.flexGrid.Rows[r].IsNode)
                {
                    var node = this.flexGrid.Rows[r].Node;
                    // 计算合计值
                    var range = node.GetCellRange();
                    var sum = this.ShiharaiListEntryFlexGrid.Aggregate(AggregateEnum.Sum,
                    range.r1, colIndex, range.r2, colIndex,
                    AggregateFlags.ExcludeNodes);
                    this.flexGrid[r, colIndex] = sum;
                }
            }
        }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

3 个回复

倒序浏览
JeffryLI
葡萄城公司职员   /  发表于:2017-10-17 12:24:13
沙发
不用这么麻烦的,您直接在AfterFilter事件中重新汇总一次就行了,这样数据就刷新了,具体您可以参考这个而例子,请参考。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1满意度 +5 收起 理由
shapphhe + 5 很给力!

查看全部评分

请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
chenfeng1029
金牌服务用户   /  发表于:2018-9-28 10:20:40
板凳
你好。我自己做了下处理。改了下。
if me.visible=true then '窗体加载显示后,在计算。
     be_TotalAmt.EditValue = (FG_List.CountSum("Realsum"))
end if
回复 使用道具 举报
JeffryLI
葡萄城公司职员   /  发表于:2018-9-28 11:49:30
地板
ok
请点击评分,对我5分评价,谢谢!

葡萄城控件服务团队
官方网站: https://www.grapecity.com.cn/developer
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部