填报表不同单元格动态计算
润乾报表(159)
数据集(27)
润乾(27)
字段(12)
填报(7)
参数(35)
报表组(17)
子报表(10)
求助(28)
动态报表(11)
数据校验(10)
配置润乾报表(31)
自由格式填报表(7)
例如单元格 A 为 B+C,C=A-B,B=A-C,
需求是三个单元格都可以输入值,动态计算更新其余俩个格子值,
目前如果填写值表达式则不可编辑,求解
润乾报表(159)
数据集(27)
润乾(27)
字段(12)
填报(7)
参数(35)
报表组(17)
子报表(10)
求助(28)
动态报表(11)
数据校验(10)
配置润乾报表(31)
自由格式填报表(7)
自动计算本身就是根据公式计算,格子值的来源是通过公式计算出来的,所以不需要编辑自动计算出来的。 而且就你这个需求来说,更改了 B 的值,那么 A,C 都变,然后 B 又引用 A,C,那不就循环引用错误了吗?
有没有类似金蝶 bos 的值更新事件,用函数的方式,动态更新值,使我举例的三个格子始终满足公式 类似于 A 更新,重新计算 BC, 这样
如果 A 引用 B,B 引用 C,C 引用 D,如果 D 变了,那三个是会动态变化,但是不能像你那么循环引用,不然肯定循环引用错误。
另外,自动计算支持使用函数,使用的是 javascript 函数,需要在展示报表的 jsp 里的 javascript 里定义函数,然后填报表格子里可以引用,这样在 js 函数里处理计算,然后 return 返回
你们可以参考下金蝶的值更新功能逻辑
1. 主动触发:给 A 格设置公式(是计算其他格值的公式),如果 A 格值更新,则根据设置好的公式更新指定格值, 指定格也对应设置更新其他格的值更新函数(被动)
2. 被动触发:给 A 格设置值更新格 ,如 B 值更新了,则取… …格值按照公式计算更新 A
非表达式引用
这个功能超出常规报表工具范围。金蝶这个应该是个专门系统,可以针对这种场景做匹配。报表工具不适合做到这个程度了,但可以考虑提供一些 API 自己用 JS 写出来
填报表原有 jsapi 回调函数 _cellValueChanged(cell, newValue, oldValue);
但这个函数不仅是在编辑单元格值时触发回调,用在此处不合适。
对这个问题,在填报表 jsapi 中,修改了提交编辑框时候的可自定义的回调函数,名称变为 _cellValueChangedByEditor(cell, newValue, oldValue);
这样就能准确在编辑框提交时候触发此函数。这需要更新报表核心 jar 包。
以下为例子,解决方案支持行式填报
列 A B C 分别在 B 列 C 列 D 列
在此表格中我们想要定义字段 A 改变时候顺序计算 B=A-C C=A-B,
也就是 C 列 =B 列 -D 列 D 列 =B 列 -C 列
在 jsp 中自定义
// 代码