找回密码
 立即注册

QQ登录

只需一步,快速开始

guoqp

银牌会员

243

主题

912

帖子

2225

积分

银牌会员

积分
2225

时代开发者征文活动

guoqp
银牌会员   /  发表于:2022-10-29 22:46  /   查看:4181  /  回复:12
本帖最后由 Simon.Sun 于 2022-10-31 17:31 编辑

举个例子

比如 =IF(AD31>0,AD31,"去认款")
这个公式在普通单元格、组件中使用都是没有问题的,但表格中不能引用自身,至少我上边这个公式是不能的,不信你们可以测试

这里不谈能不能用其它的方法实现,我们就说这样的需求,因为它是一个非常普遍的需求
我说下使用场景
比如合同收款值为空或者为0时,我希望它显示成“去认款”,开票数据为空或者为0时我希望它显示为去认票,工时数据为空或者为0时我希望显示它为“去报工”,合同号为空时我希望它显示为“申请合同号”,经办人为空时,我希望它显示为选择经办人,业主单位数据为空时我希望它显示为“选择客户”,等等此类场景

如果一定要说其它解决方法,比如新加一列就可以判断了,没错,但问题也来了,新加的列因为使用了公式,无法汇总;
也有人说我在查询的时候直接遍历整个表格,对数据进行判断再修改值,也没错,但这样带来的后果就是查询速度非常慢,尤其是数据量非常大的情况下,非常影响体验。
还有一种我自己尝试出来的新版本才有的功能,就是在图文列表(不支持公式)中使用组件(支持公式),这种方式可以实现,但带来的后果就是我要花很多时间去设计这个图文列表,一旦有修改极为不便,不如表格来得直接(增加删除列就是点点鼠标就完成了)

所以我希望表格中单元格公式支持使用自身的值进行判断,我更希望的是表格支持单元格数据绑定事件,就像ASP.NET中的数据绑定事件(如:GridView.RowDataBound 事件)一样,可以拿到绑定前的值,进行一系列业务逻辑处理后返回一个新值给单元格进行绑定,如果能实现这样就效果就好了

本帖子中包含更多资源

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

x

12 个回复

倒序浏览
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2022-10-31 16:23:52
沙发
大佬,您这个需求看能否考虑使用自定义格式去实现,比如默认值为 0,设置为 0 时显示想要的内容,不为 0 时使用通用格式正常展示。比如下面这样:


本帖子中包含更多资源

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

x
回复 使用道具 举报
guoqp
银牌会员   /  发表于:2022-10-31 17:21:09
板凳
Simon.Sun 发表于 2022-10-31 16:23
大佬,您这个需求看能否考虑使用自定义格式去实现,比如默认值为 0,设置为 0 时显示想要的内容,不为 0 时 ...

这个办法可以解决暂时性需求,但却无法加入命令处理逻辑,所以我觉得这个需求还是有必要提,暂时不能实现的情况下我可以用这种办法,毕竟这种方法顶天也就只能处理一下一个公式能解决的问题。
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2022-10-31 17:53:32
地板
活字格的公式行为和 Excel 的一致,是不支持循环引用的,比如:
删除或允许使用循环引用 (microsoft.com)
简单来说就是:如果在公式里出现自身单元格,由于计算结果还没得到,所以公式无法取值进行计算,这就是系统提示的循环引用,是一种错误的公式,无法得到结果。

此外如果绑定字段和公式同时使用时,也会存在优先展示绑定字段的问题。
我看您另外一个帖子使用图文列表结合组件实现,就是一个脑洞大开,也是一个很好的思路





回复 使用道具 举报
guoqp
银牌会员   /  发表于:2022-10-31 18:30:41
5#
Simon.Sun 发表于 2022-10-31 17:53
活字格的公式行为和 Excel 的一致,是不支持循环引用的,比如:
删除或允许使用循环引用 (microsoft.com)
...

其实我想给你们反映的需求是表格增加数据绑定事件,这样就可以在绑定的时候取到欲绑定的值,然后根据自己需要进行一系列的命令,最后返回一个新的值给单元格绑定,这难道不是很强大的功能么?应该大家都想要这个功能吧
回复 使用道具 举报
Simon.Sun活字格认证 Wyn认证
超级版主   /  发表于:2022-11-1 09:28:40
6#
感谢您的反馈,以上需求已被整理记入我们的内部系统,编号是:41698,后续产品经理会评估该需求的合理性以及实现的必要性、可行性,然后加入开发计划。欢迎您继续积极反馈,帮助我们提升和完善产品功能。
回复 使用道具 举报
Patrick.Zhu
银牌会员   /  发表于:2024-4-12 14:18:31
7#
本帖最后由 Patrick.Zhu 于 2024-4-12 14:21 编辑

很多功能是,大家反馈时,都呼声很高,做出来了,发现实际业务中用不起来。
但看您功能的描述,用单元格格式或者公式字段,应该都不难实现。
也许您有更多的信息,欢迎补充。
回复 使用道具 举报
guoqp
银牌会员   /  发表于:2024-4-12 15:30:40
8#
Patrick.Zhu 发表于 2024-4-12 14:18
很多功能是,大家反馈时,都呼声很高,做出来了,发现实际业务中用不起来。
但看您功能的描述,用单元格格 ...

如果我想加入一些复杂的处理逻辑,公式能实现?
这个场景非常常见
比如:判断某人没有相应权限则直接屏幕某些字段,或者修改字段内容。
比如:某个字段显示前需要进行一系列计算,再将结果显示到某列。
在ASP.NET的GRIDVIEW控件有数据绑定事件,如单元格绑定时、行绑定时都可以触发,这样就可以加入处理逻辑来动态改变显示内容
公式只能解决简单需求,不能处理复杂的逻辑处理。
回复 使用道具 举报
Patrick.Zhu
银牌会员   /  发表于:2024-4-15 16:05:06
9#
你举得第一个例子,也许应该是直接根据角色,控制表格列的是否展示。不知道现在的隐藏能不能满足你的诉求;
第二个例子,也许用已有的公式就可以,得结合具体场景来看。

我希望我们有一个共识,就是我们资源还是比较紧张的,如果没有明确的价值点和用户故事的话,很难规划排期,并向内外各方解释情况。

也许你能针对”某个字段显示前需要进行一系列计算,再将结果显示到某列“,找一个有说服力的情况,我们共同把这个需求推进下去。
回复 使用道具 举报
guoqp
银牌会员   /  发表于:2024-4-15 16:37:23
10#
Patrick.Zhu 发表于 2024-4-15 16:05
你举得第一个例子,也许应该是直接根据角色,控制表格列的是否展示。不知道现在的隐藏能不能满足你的诉求; ...

比如表格有一列叫财务利润率,他是通过一个服务端命令传入当前项目编号计算出来的,根据项目编号去取几个表数据后进行计算得出激活返回客户端,显示在财务利润率列
每行项目编号不一致,所以每行都需要在数据绑定时进行这个计算再显示
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部