找回密码
 立即注册

QQ登录

只需一步,快速开始

Erik.Xue 讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2023-7-27 13:41  /   查看:1137  /  回复:0
最近,有一位小伙伴提出了一个需求,想在我们的数据表里,实现传递过来的数据根据某一列合计统计。

看到这个需求,是不是首先想到的是利用《统计字段》,便可以快速看到想要的统计效果,再不济,我们写一个视图,也能实现。

但是呢,客户想要的效果是表格是在“松绑定”状态下,实现这样的效果,如此一来,统计字段和视图便不起效了。原因也很简单:统计字段和视图的效果只能看不能编辑。

为了能实现这样的效果,那么只能费点儿劲儿,换一种方式来实现了,接下来就给大家介绍下实现的方法和思路。

一、拿到源数据表的数据

既然要实现去重统计的效果,那么我们就从数据表数据下手,最简单易行的办法就是将源数据表的数据转为json格式,那么这里我们用到了一位格友制作的强大插件——xTools中的《x表格智Json》命令,先从源数据表中拿到想要的数据。
image.png241729125.png

运行后,可以在控制台日志中看到,我们以json格式拿到了数据表数据。
image.png119731444.png


二、数据去重

拿到数据,就成功了一半,接下来我们需要处理这些数据即可。PS:记得先给源数据表和传递的目标数据表的列都设置好列名。
image.png774041442.png

这里我使用了服务端命令,这样的好处是,复杂的处理逻辑交给后端服务器来处理,处理结束后,返回给前端页面结果就可以了。

服务端命令中使用以下插件,如果没有安装,请先在设计器安装插件:
  • Json序列化/Json反序列化命令
  • 字典操作
  • 数组操作
  • 对象操作




逻辑思路如下:

先将传入的Json数据反序列化为对象,然后循环该对象,创建一个字典,利用字典的键值对特性,键为去重后的字段名,值为累加的值。
image.png533883056.png

如果存在,就给存在的值累加,如果不存在,就新放一个一对键值对。

全部放入字典后,我们再创建一个数组,然后循环字典,构建对象,将一个个对象存入数组;最后序列化数组返回即可。

image.png83929747.png


三、将json数据放至数据表

然后,再借用《xJson至表格》命令将服务端命令返回的Json数据放置在表格上就ok了~
image.png233420714.png

如上图,可以看到我们实现了想要的效果~

学废了吗?

没学废???那就看看工程demo吧~~~

表格松绑定根据某字段去重合计值.fgcc (468.64 KB, 下载次数: 61)

0 个回复

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