苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 2305|回复: 10

如何用代码修改合计行某个单元格的值?

[复制链接]

11

主题

25

帖子

97

积分

注册会员

Rank: 2

积分
97
发表于 2023-6-6 14:38:18 | 显示全部楼层 |阅读模式
如何用代码修改合计行某个单元格的值?比如要把合计行的单价单元格改为平均单价。

本帖子中包含更多资源

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

x
回复

使用道具 举报

25

主题

313

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
QQ
发表于 2023-6-6 16:51:37 | 显示全部楼层
  1. Dim tbl As SmGrid=Proj.CurrentSmGrid
  2. Dim description As FooterDescription = tbl.Footers.Descriptions(tbl.Footers.Descriptions.Count - 1)
  3. Dim avg As New AggregateDefinition
  4. avg.PropertyName="单价"
  5. avg.Aggregate=AggregateEnum.Average
  6. description.Aggregates.Add(avg)
复制代码


回复

使用道具 举报

11

主题

25

帖子

97

积分

注册会员

Rank: 2

积分
97
 楼主| 发表于 2023-6-12 09:08:42 | 显示全部楼层

这个代码应该不对,执行了合计行就不见了,我只是单纯的想改合计行某个单元格值,比如自己计算好值33.62,把这个33.62赋值单价列的合计行的单元格。
回复

使用道具 举报

25

主题

313

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
QQ
发表于 2023-6-12 11:04:12 | 显示全部楼层
在执行合计行之后执行。其他没有办法赋值。因为会被重新计算。
回复

使用道具 举报

11

主题

25

帖子

97

积分

注册会员

Rank: 2

积分
97
 楼主| 发表于 2023-6-13 15:56:46 | 显示全部楼层
admin 发表于 2023-6-12 11:04
在执行合计行之后执行。其他没有办法赋值。因为会被重新计算。

执行合计行之后执行,在哪个事件中写代码
回复

使用道具 举报

25

主题

313

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
QQ
发表于 2023-6-13 16:04:59 | 显示全部楼层
AfterLoaded事件,注意AfterLoaded可能会被重复执行,上面的代码自己要判断一下是否已经执行过。
回复

使用道具 举报

11

主题

25

帖子

97

积分

注册会员

Rank: 2

积分
97
 楼主| 发表于 2023-6-13 16:18:48 | 显示全部楼层
如何获取分类汇总的行、列给单元格赋值
回复

使用道具 举报

25

主题

313

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
QQ
发表于 2023-6-13 21:27:04 | 显示全部楼层
你想象的方法对合计行不通的。只有我一开始给你提供的方法可以给合计行赋值。

你要的获取分类汇总的行、列,并进行单元格赋值的方法如下:
  1. Dim tbl As SmGrid=Proj.CurrentSmGrid
  2. '方法一:直接根据单元格来赋值,Node节点也是单元格
  3. tbl(2,"单价")=2
  4. '方法二:根据目录树来访问赋值
  5. Dim nd As Node=tbl.Nodes(1) '先获得第一层第二个节点
  6. nd.Nodes(0).Row("单价")=2.5 '获得这个节点下的第一个子节点来赋
复制代码
回复

使用道具 举报

11

主题

25

帖子

97

积分

注册会员

Rank: 2

积分
97
 楼主| 发表于 2023-6-14 09:50:27 | 显示全部楼层
admin 发表于 2023-6-13 21:27
你想象的方法对合计行不通的。只有我一开始给你提供的方法可以给合计行赋值。

你要的获取分类汇总的行、列 ...

遍历节点给分类汇总赋值的方法可行,分类汇总之后的事件是哪一个?试了好多事件都不能执行,要先拿到分类汇总行的值才能去计算然后赋值给分类汇总的单元格
回复

使用道具 举报

25

主题

313

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
QQ
发表于 2023-6-14 10:48:23 | 显示全部楼层
你这想法有问题的,你如果想自己去维护这个统计结果的话,你就得在任何单元格有数据变化的时候把当前列相关分组统计及相应的父级统计结果都要变更。你如果排序有变化了,那么结果还要更新。
分类汇总你试试AfterSubtotal事件吧。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2024-10-2 23:28 , Processed in 0.062523 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表