听雨 发表于 2024-2-3 17:26:37

【9.0.6】如何实现子表格在未提交情况下进行数据分类统计?

本帖最后由 听雨 于 2024-2-3 17:34 编辑

我有2类表A和B,其中A表为主子表,B表为普通表。

当编辑A表子表时,是由批量选择B表行数据并传递到A表子表中。
目前从B表选择的行数据中,有重复项(品名),但数量不同。我想在传递到A子表的时候,自动根据品名进行分类统计,合计数量和金额,并显示到子表当中(此时还未对A表进行提交或保存到数据库中)。

这种情况该如何操作?

实现目标:


听雨 发表于 2024-2-3 17:26:38

Joe.xu 发表于 2024-2-4 17:50
这种确实就比较麻烦了,只能获取表格的全部数据,
用代码的逻辑循环处理,再把处理的数据插入到表格,
或 ...

代码不太懂。
采取了一个迂回的办法,对于子表设置了统计字段:总数量和总金额
在新建和修改时正常批量选择添加,正常显示(可以有重复)。
然后再复制一个该页面作为查看和打印,绑定统计字段,这样就可以实现了。
主要就是在打印时不出现重复项就好,添加时自己看着无所谓了。

关于其它方法,以后再慢慢研究哈。:itwn:

听雨 发表于 2024-2-3 17:31:09

附DEMO

Joe.xu 发表于 2024-2-4 11:53:24

其实这个最简单的实现方式就是使用统计字段,直接就能汇总。
但是楼主的数据还没有存到数据库中,就用不了了
您这中需求建议这样实现,每一种品名只需要选择一次,
这里的数量允许修改,这样数量和金额就能变化了
同一个物品选择多次有点怪;P


听雨 发表于 2024-2-4 15:02:45

Joe.xu 发表于 2024-2-4 11:53
其实这个最简单的实现方式就是使用统计字段,直接就能汇总。
但是楼主的数据还没有存到数据库中,就用不了 ...

实际业务场景是:汇总账单(**)
我要选多个出库记录作为账单的列表(存入子表)。因为一个商品可能多次出库记录,所以选择时会出现选择多次。但又不想子表中出现重复的品名项,这不符合实际账单需求。所以就看看有没有办法按品名进行汇总一下。
因为数据没提交,所以汇总貌似有点难

Joe.xu 发表于 2024-2-4 17:50:01

这种确实就比较麻烦了,只能获取表格的全部数据,
用代码的逻辑循环处理,再把处理的数据插入到表格,
或者直接使用jS来操作表格数据
ListView类 - 活字格V8帮助手册 - 葡萄城产品文档中心 (grapecity.com.cn)



Shawn.Liu 发表于 2024-2-4 17:55:04

批量选择时根据品名分组汇总数量,因为还无法使用执行SQL命令或者统计字段,使用x表格选择行至JSON,然后对JSON数组进行汇总,可以考虑使用数组操作或者字典等以便对品名去重,为了后续在将数据回传到批量选择页面,这边使用了数组集合,当数组中不存在某品名时直接Push,否则更新数组中指定元素的数量字段,可以作为参考:


逛逛逛 发表于 2024-2-4 21:37:19

可以去汇总B表啊,按B表的选中的ID集合作为条件,分组查询,获取数据后传递到A表子表。

听雨 发表于 2024-2-5 09:51:15

Shawn.Liu 发表于 2024-2-4 17:55
批量选择时根据品名分组汇总数量,因为还无法使用执行SQL命令或者统计字段,使用x表格选择行至JSON,然后对 ...

不太懂JSON的使用,有相关的活字格应用教程吗?后续可以研究一下。

Shawn.Liu 发表于 2024-2-5 13:37:50

大佬,这边看您上面回复已使用迂回的方法处理,如果通过对JSON数组进行去重汇总,可以参考市场上下面四个插件:
xTools快速开发工具包 - 葡萄城市场 (grapecity.com.cn)
JSON序列化/反序列化命令 - 葡萄城市场 (grapecity.com.cn)
对象与集合操作工具 - 葡萄城市场 (grapecity.com.cn)
JSON数据源 - 葡萄城市场 (grapecity.com.cn)
页: [1] 2
查看完整版本: 【9.0.6】如何实现子表格在未提交情况下进行数据分类统计?