永洪社区

标题: 麻烦提供下替换数据的脚本 [打印本页]

作者: odanobunaga    时间: 2022-4-25 20:14
标题: 麻烦提供下替换数据的脚本
希望能提供下 和实现参数列一样功能的 脚本
包含替换表(用过将单元格设置0的方法,但是导出数据也有相应的字段,所以不适用)
指标卡,图表等等的,谢谢


作者: 永洪tech-cp    时间: 2022-4-25 20:23
可以参考动态绑定度量的脚本
//度量动态绑定
var arr1 = 列表参数2.getSelectedObjects();
function dynamic_binding1(chart1){
    chart1.binding.clearYCols();
    for(var j= 0; j < arr1.length; j++){
        var b='Sum_'+arr1[j
        var bcol1 = new BCol(arr1[j,DOUBLE,false);
        var measureCol1 = new ChartMeasureCol(SUM,bcol1);

        chart1.binding.addYCol(j,measureCol1);
        chart1.binding.axis[b.shareGroup = 'aaa'
    }
}
dynamic_binding1(图表6);
作者: odanobunaga    时间: 2022-4-26 10:42
永洪tech-cp 发表于 2022-4-25 20:23
可以参考动态绑定度量的脚本
//度量动态绑定
var arr1 = 列表参数2.getSelectedObjects();

var b='Sum_'+arr1[j   这些地方感觉有点问题呢,能麻烦check下给个带注释版吗,而且请问这个脚本对于表,图表,指标卡都适用吗?
而且我记得获取表,图表数据的函数是不一样的吧
作者: odanobunaga    时间: 2022-4-26 10:51
永洪tech-cp 发表于 2022-4-25 20:23
可以参考动态绑定度量的脚本
//度量动态绑定
var arr1 = 列表参数2.getSelectedObjects();

很想用参数列实现,但是参数列一个值,一个标签绑定了2组数据了,现在还有第三组数据,就没法在用参数列来实现了
作者: 环环    时间: 2022-4-26 11:42
图表的参考这个
https://www.yonghongtech.com/help/Z-Suite/8.7/ch/topic462.htm
作者: odanobunaga    时间: 2022-4-26 15:47
永洪tech-秀秀 发表于 2022-4-26 11:42
图表的参考这个
https://www.yonghongtech.com/help/Z-Suite/8.7/ch/topic462.htm

我这里用脚本遇到个这样的问题:
if(param['select_one']=='金额'){
var bcol1=new BCol("总金额",DOUBLE,false);
var qcol=new ChartMeasureCol(SUM,bcol1,null);
图表.binding.setXCol(0,qcol);
}
因为用了上面的 脚本是可以对字段进行切换了,但是有一定的问题,就是他会默认展示浅蓝色的色调,所以
我想直接也用脚本看把颜色也改了,就加了下面的语句



最后他的脚本为:
if(param['select_one']=='金额'){
var bcol1=new BCol("总金额",DOUBLE,false);
var qcol=new ChartMeasureCol(SUM,bcol1,null);
var d = new DefColorGuide(java.awt.Color.black);
图表.binding.markCol['总金额'].colorGuide= d;
图表.binding.setXCol(0,qcol);
}

但是报错:colorGuide" of undefined to "g5.common.script.NativeObj@3f03dfd7

如果我想实现颜色的换绑的话,应该如何实现呢

且我知道图表的脚本,主要是表的脚本,对表的字段进行换绑,现在用设置单元格为0的方法
局限性太大了
麻烦解答下了
作者: 环环    时间: 2022-4-26 16:11
图表.binding.markCol['总金额'].colorGuide= d;

总金额改成  SUM_总金额试试
作者: odanobunaga    时间: 2022-4-26 16:41
永洪tech-秀秀 发表于 2022-4-26 16:11
图表.binding.markCol['总金额'].colorGuide= d;

总金额改成  SUM_总金额试试

嗯,还是会报一样的错误
作者: 环环    时间: 2022-4-26 17:02
var bcol = new BCol("利润",INTEGER,false);
var ccol = new MeasureCol(SUM, bcol, null);     
ccol.col = bcol;
ccol.view = "别名-利润";

参考这个设置下别名呢,现在就是没有定位到那个字段列,调用方法失败
作者: odanobunaga    时间: 2022-4-26 17:27
本帖最后由 odanobunaga 于 2022-4-26 17:29 编辑
永洪tech-秀秀 发表于 2022-4-26 17:02
var bcol = new BCol("利润",INTEGER,false);
var ccol = new MeasureCol(SUM, bcol, null);     
ccol.col ...

额。。发现一个事情,现在别名都无法设定上,比如改为111,还是显示的 总金额_总和,然后我把这里改为图表4.binding.markCol['总金额_总和'.colorGuide= d;

也还是取不到字段

作者: odanobunaga    时间: 2022-4-26 17:36
永洪tech-秀秀 发表于 2022-4-26 17:02
var bcol = new BCol("利润",INTEGER,false);
var ccol = new MeasureCol(SUM, bcol, null);     
ccol.col ...

你的脚本我也试了,我在装载和变化都加了如下脚本

var bcol = new BCol("总金额",INTEGER,false);
var ccol = new MeasureCol(SUM, bcol, null);     
ccol.col = bcol;
ccol.view = "别名-总金额";

然后
var d = new DefColorGuide(java.awt.Color.black);
图表.binding.markCol['别名-总金额'].colorGuide= d;

但是还是报错
作者: 环环    时间: 2022-4-26 18:23
不行改一下实现方式呢,还是用参数列,用现在的参数组件的选中值,控制参数列的选中值,这个脚本要简单很多
作者: odanobunaga    时间: 2022-4-27 10:15
永洪tech-秀秀 发表于 2022-4-26 18:23
不行改一下实现方式呢,还是用参数列,用现在的参数组件的选中值,控制参数列的选中值,这个脚本要简单很多 ...

是这样的,我参数列已经绑定了一组字段了,参数列可以多绑定吗?
比如我一个参数组件 有2个选项,值为1,2,
然后我有两个字段就是1,2,
现在就是绑定的这两个字段,其他的字段如何绑定上这个参数列呢
作者: odanobunaga    时间: 2022-4-27 10:16
永洪tech-秀秀 发表于 2022-4-26 18:23
不行改一下实现方式呢,还是用参数列,用现在的参数组件的选中值,控制参数列的选中值,这个脚本要简单很多 ...

实际现在用visable也能做,但是需求很容易变,下次再改动的话,就超级麻烦
作者: _贝贝    时间: 2022-4-27 10:17
本帖最后由 永洪tech-Muse 于 2022-4-27 10:20 编辑
odanobunaga 发表于 2022-4-27 10:15
是这样的,我参数列已经绑定了一组字段了,参数列可以多绑定吗?
比如我一个参数组件 有2个选项,值为1,2 ...

可以呀 92版本以后参数列是支持多选的  比如1、2字段绑定在参数列a,3、4字段绑定参数列b   如果有多组 就多新建几个参数列绑定在表格上

对脚本不是很熟悉的话  通过脚本实现很复杂,不建议脚本来做了, 后期维护起来成本很高
作者: odanobunaga    时间: 2022-4-27 10:27
永洪tech-Muse 发表于 2022-4-27 10:17
可以呀 92版本以后参数列是支持多选的  比如1、2字段绑定在参数列a,3、4字段绑定参数列b   如果有多组 就 ...

请问有视频吗,或者相关的手顺。
实际脚本的维护成本反而不高,只要把注释写好了,而且也只有一个人维护,没有大的讲解成本,脚本灵活性更高,就是确实不熟悉的话,刚开始会比较难
作者: _贝贝    时间: 2022-4-27 10:29
odanobunaga 发表于 2022-4-27 10:27
请问有视频吗,或者相关的手顺。
实际脚本的维护成本反而不高,只要把注释写好了,而且也只有一个人维护 ...

可以看下这个
https://www.yonghongtech.com/hel ... 2%E6%95%B0%E5%88%97
作者: odanobunaga    时间: 2022-4-27 11:13
永洪tech-Muse 发表于 2022-4-27 10:29
可以看下这个
https://www.yonghongtech.com/help/Z-Suite/9.4/ch/dataprocess_dynamicbind.html?zoom_hi ...

额。。。请问你说的下拉列表参数吗,这个不符合需求呢,只能用下拉参数,选择一个选项可以切换多个图表或者表中的值(且每个图表中的值是不一样的字段)
作者: _贝贝    时间: 2022-4-27 12:01
odanobunaga 发表于 2022-4-27 11:13
额。。。请问你说的下拉列表参数吗,这个不符合需求呢,只能用下拉参数,选择一个选项可以切换多个图表或 ...

这个用图表显示隐藏来做呢
作者: odanobunaga    时间: 2022-4-27 13:00
永洪tech-Muse 发表于 2022-4-27 12:01
这个用图表显示隐藏来做呢

现在看只能用visable做了,但是这个维护太麻烦饿了
作者: odanobunaga    时间: 2022-4-27 13:06
永洪tech-Muse 发表于 2022-4-27 12:01
这个用图表显示隐藏来做呢

对了,我这里提个bug,如果标记组里面的颜色用参数列的话,再变更颜色的时候会提示列名“xxx”没有找到。
作者: 环环    时间: 2022-4-27 13:47
odanobunaga 发表于 2022-4-27 10:15
是这样的,我参数列已经绑定了一组字段了,参数列可以多绑定吗?
比如我一个参数组件 有2个选项,值为1,2 ...

就是选择一个字段,要绑定多个字段嘛。我是指用两个参数组件,一个用来做参数列放要绑定的字段,设置这个组件宽度为0(即隐藏)。另一个放选择的字段,通过判断选择的数据,来控制参数列的选中值,这个只需要给参数组件赋值,会简单很多
作者: odanobunaga    时间: 2022-4-27 14:40
永洪tech-秀秀 发表于 2022-4-27 13:47
就是选择一个字段,要绑定多个字段嘛。我是指用两个参数组件,一个用来做参数列放要绑定的字段,设置这个 ...

有点没太理解,秀秀,我这里说下我的具体需求哈:
现有数据:
1.三个维度计算列,主要用于一个占比图 的颜色区分 以及 一张表格的数据展示
2.三个度量字段,用于表 以及 一个 指标卡 的数据展示
3.三个度量计算列,用于表 以及 一个图表 的数据展示

然后有个 下拉参数,单选,分别为A,B,C,然后根据选项不同控制上面三组数据的切换
因为参数列现在只能绑定一组数,所以现在我分别用了隐藏,单元格归0,脚本,参数列
4种方法来搞定,很乱且不容易维护,如果有很简单的方法的话,麻烦提供一个很详细的
手顺以供学习,万分感谢
作者: 环环    时间: 2022-4-27 17:41
哪个版本呢,参数列现在只能绑定一组数是指一个参数组件只能同时绑定维度或者度量吗。
像这样,用两个参数组件分别绑维度和度量的,做成参数列。加一个下拉参数,下拉参数里为要选择的值,比如选a,两个参数列就分别选择种类和销量,选择b,参数列就选中市场分布和利润。
(, 下载次数: 711)