永洪社区

标题: 自定义js代码咨询(实现类excel) [打印本页]

作者: yhdata_si05pgTj    时间: 2023-10-7 11:20
标题: 自定义js代码咨询(实现类excel)
咨询下,
背景:因为自带的图表高亮无法实现对数据透视表中同一行中最大值或最小值进行数据的高亮所以选择自定义代码。自定义代码目前支持的三个库都没有table组件,又只能选择自己写图表组件。核心功能达到了但是发现很多问题无法解决。
具体问题:
1. echarts中容器的概念,永洪教程中说是一件8能够定义为container了,在永洪的自定义js中如何操作这个容器或者获取这个容器的属性例如:长宽等。
2.我是通过多个矩形元素rect拼成一个表格的,这样出现第二个问题,这个表格没办法滚动,zoomdata组件我看都是对一个图表的滚动,没办法对多个组件滚动。 搜索了之后好像可以把多个图表放入一个容器,然后通过图表id滚动,衍生出上面第一个问题。 永洪bi中好像默认了一个容器id:container,但是不知道怎么使用。
原始诉求是能够对表格每一行中最大值最小值进行高亮,如果有高手有其他思路也先谢谢了

作者: yhdata_lyaa    时间: 2023-10-7 11:20
有没有具体场景呢
可以试试楼上的办法,或者用动态计算去做, 有percentMin和percentMax两个对应的动态计算函数。依照表格横向计算,在报告上percentMin=1的是最小值,percentMax=1的是最大值。
参考函数说明
https://www.yonghongtech.com/rea ... lightsub=percentMin


作者: yanieye    时间: 2023-10-7 14:16
不推荐用自定义JS的方式去做这么复杂的前端组件。
原始需求的表格样式,提供一下呢,看看具体是哪一种类型的表格。
作者: yanieye    时间: 2023-10-7 15:15
参考附件的Jar,可以通过资源部署导入, 这个Demo是使用9.4.1版本做的。
1. 主要的处理逻辑在自服务数据集中,将每一行中的值是否是最小值或者最大值,直接标记出来。
     1.1 先按照要展示的列,进行分组汇总;
     1.2 做两个镜像节点;
     1.3 在其中一个镜像节点上,对用于行分组的列再做一次分组,并取得最大值和最小值;
     1.4 把这个新的分组 和 另外一个镜像进行连接,使用行分组的列作为Join列;
     1.5 在结果集上创建计算列,计算是否是最大值或者最小值(isMax, isMin)
2. 把需要展示的列(sales),和标记列(isMin 和 isMax)都绑定到交叉表上。
3. 在sales_总和对应的格子上,通过高亮设置,直接使用#1中标记好的是否是最小值或者是否是最大值来作为高亮的判断条件。
4. 不需要的列,选中对应的格子,然后通过设置->单元格尺寸 -> 隐藏列, 隐藏起来。
作者: yhdata_si05pgTj    时间: 2023-10-7 17:30
yanieye 发表于 2023-10-7 15:15
参考附件的Jar,可以通过资源部署导入, 这个Demo是使用9.4.1版本做的。
1. 主要的处理逻辑在自服务数据集 ...

非常感谢先,是这个效果,但是没看懂如何实现的。可以 我现在电脑上无法观看,回去试一下。
我最开始也是用的交叉表,如下图。 但是交叉表编辑状态列只有一个字段(选择了横向扩展), 预览状态会自动横向扩展。这种情况下选择高亮,如下图上是(销量), 就无法对每一行的最大值和最小值进行高亮(一方面无法基于动态参数来每一行对比当前行的最大值最小值),高亮设置对整个“销量”字段生效。
作者: yhdata_si05pgTj    时间: 2023-10-7 17:44
yhdata_lyaa 发表于 2023-10-7 17:26
有没有具体场景呢
可以试试楼上的办法,或者用动态计算去做, 有percentMin和percentMax两个对应的动态计算 ...

非常优秀,这个可以的。 但是只适用于交叉表对吗? 我之前帖子里面写错了,自由式表格可以实现吗?
或者换个思路,交叉表中可以增加两列一列是最大值,一列是最小值吗?不是每一列都增加最大值最小值,只在最后面显示两列。另外交叉表第二行(就是列名那一行,“销售额总和”可以隐藏吗?
作者: yhdata_si05pgTj    时间: 2023-10-7 17:44
yhdata_si05pgTj 发表于 2023-10-7 17:30
非常感谢先,是这个效果,但是没看懂如何实现的。可以 我现在电脑上无法观看,回去试一下。
我最开始也是 ...

我写错了,不好意思,是自由式表格。
作者: yhdata_lyaa    时间: 2023-10-7 17:49
yhdata_si05pgTj 发表于 2023-10-7 17:44
非常优秀,这个可以的。 但是只适用于交叉表对吗? 我之前帖子里面写错了,自由式表格可以实现吗?
或者 ...

这段说的也是自由表吗
作者: yhdata_si05pgTj    时间: 2023-10-7 17:49
yhdata_lyaa 发表于 2023-10-7 17:26
有没有具体场景呢
可以试试楼上的办法,或者用动态计算去做, 有percentMin和percentMax两个对应的动态计算 ...

自由式表格也可以,非常感谢
作者: yhdata_lyaa    时间: 2023-10-7 17:51
yhdata_si05pgTj 发表于 2023-10-7 17:49
自由式表格也可以,非常感谢






欢迎光临 永洪社区 (http://club.yonghongtech.com/) Powered by Discuz! X3.4