yhdata_NLKeTicM玄铁一
前天 09:55 发布在问答
【数据处理】 脚本数据邦订后续处理
图表1.binding.source ="指标体系/ShiMing演示数据集/测试数据集维度/维度_度量.sqry";
图表1.binding.clearCols();
var bcol1 = new BCol("维度值1", STRING, true);
var bcol2 = new BCol("维度值2", STRING ,true);
var bcol3 = new BCol("度量值1", DOUBLE, false);
var bcol4 = new BCol("度量值2", DECIMAL, true);
var dcol1 = new DimCol(bcol1);
var dcol2 = new DimCol(bcol2);
var dcol3 = new DimCol(bcol3);
var dcol4 = new DimCol(bcol4);
var mcol1 = new MeasureCol(SUM, bcol3, null);
var a = new ChartMeasureCol(SUM, bcol3, null);
var b = new ChartMeasureCol(MAX, bcol3, null);
var d = new ChartMeasureCol(MIN, bcol3, null);
var c = new ChartMeasureCol(Quartile, bcol3, 4);
bcol3.sortType=6;
bcol3.sortGroupOthers=true;
bcol3.showTotal=true;
bcol3.groupSpan=true;
bcol3.sortRank=20;
bcol3.name=mcol1;
图表1.title = "表格绑定数据";
图表1.binding.clearCols();
图表1.binding.addCol(0, dcol1);
图表1.binding.addCol(1, dcol2);
图表1.binding.addCol(2, dcol3);
图表1.binding.addCol(3, dcol4);
图表1.binding.addCol(7, a);
图表1.binding.addCol(8, b);
图表1.binding.addCol(9, d);
图表1.binding.addCol(10, c);


下拉列表参数1.setObjects(["维度1", "度量值1","度量值2", "度量值3", "度量值4", "度量值5"]);
下拉列表参数1.setSelectedObjects(["维度1", "度量值1","度量值2", "度量值3", "度量值4", "度量值5"], STRING);
下拉列表参数1.showBtn = true;
下拉列表参数1.showSelectedOnly = true;
下拉列表参数1.single = true;
下拉列表参数1.submitOnChange = true;
下拉列表参数1.selectOnTop = true;
下拉列表参数1.submitOnChange = true;
下拉列表参数1.dropDown = true;

我现在是想根据下拉列表参数1的选择值来对图表1的数据进行排序,然后求出最大值,最小值,平均数,中位数等信息放在一个文本框,接下来我该怎么做呢

93
23
精彩评论23
yhdata_lyaa
发表于 前天 10:21 显示全部楼层
下拉列表参数1是固定的选项?
下拉列表参数1.showBtn = true;
下拉列表参数1.showSelectedOnly = true;
下拉列表参数1.single = true;
下拉列表参数1.submitOnChange = true;
下拉列表参数1.selectOnTop = true;
下拉列表参数1.submitOnChange = true;
下拉列表参数1.dropDown = true;
这些脚本是要做什么呀,下拉列表参数的选项变化和 图表1 没看到有什么关系
回复

使用道具 2#

yhdata_NLKeTicM玄铁一 回复yhdata_lyaa
发表于 2025-03-31 10:23:33
下拉列表参数1的其实是图表1的行的标题,然后是想根据下拉列表参数1来选择列进行数据排序,然后求出最大值和最小值的:lol
回复

yhdata_NLKeTicM玄铁一 回复yhdata_lyaa
发表于 2025-03-31 10:29:27
简单的就是我的数据是维度_度量.sqry里面的,然后放在一个table中,然后下拉列表参数1中是bcol的值,然后要根据下拉列表参数1选中的bcol的值进行排序,然后再求出最大值和最小值放在一个文本框,也就是这个最大值和最小值慧根据下拉列表参数1的选择的列进行计算和变化{:4_86:}
回复

yhdata_lyaa
发表于 前天 10:39 显示全部楼层
感觉这个脚本不太可行,那你现在是遇到哪一步的问题了
var arr = 下拉列表参数1.getSelectedObjects()[0]
获取下拉列表参数选中的值,赋值给bcol??
回复

使用道具 3#

yhdata_NLKeTicM玄铁一 回复yhdata_lyaa
发表于 2025-03-31 10:42:10
现在遇到的是下拉列表参数1选择后图表1的对呀的列并没有排序
回复

yhdata_NLKeTicM玄铁一 回复yhdata_lyaa
发表于 2025-03-31 10:46:27
而且现在下拉列表参数1默认只选择第一个纬度值1,其他的选不上
回复

yhdata_lyaa回复yhdata_NLKeTicM玄铁一
发表于 2025-03-31 10:52:35
下拉列表参数1选择后,没写脚本获取值,再跟BCOL挂上关系, 图表1的列怎么会排序
回复

展开更多回复
yhdata_NLKeTicM玄铁一
发表于 前天 10:41 显示全部楼层
本帖最后由 yhdata_NLKeTicM 于 2025-3-31 10:42 编辑

=
回复

使用道具 4#

yhdata_lyaa
发表于 前天 10:58 显示全部楼层
我不太明白你的意思,你举个例子看看能不能不写脚本呢,
根据下拉列表参数1的选择值来对图表1的数据进行排序,什么样的排序,,举个例子?
,然后求出不同的度量列?最大值,最小值,平均数,中位数等信息,都绑定再图表1 上。
不管脚本,有没有结果的效果图截图看看,比如这样获取哪个最大值


回复

使用道具 5#

yhdata_NLKeTicM玄铁一 回复yhdata_lyaa
发表于 2025-03-31 11:04:04
我也不想依靠脚本,但是我的这个图表1.binding.source ="指标体系/ShiMing演示数据集/测试数据集维度/维度_度量.sqry";里面的数据是变化的,有可能多列,有可能少个列,如果只是在组件上去求最大值,最小的是很简单的
回复

yhdata_NLKeTicM玄铁一 回复yhdata_lyaa
发表于 2025-03-31 11:13:49
下拉列表参数1.setObjects([, "度量值1","度量值2", "度量值3", "度量值4", "度量值5"]); 下拉列表参数1.setSelectedObjects(["度量值1","度量值2", "度量值3", "度量值4", "度量值5"], STRING); 下拉列表参数1.showBtn = true; 下拉列表参数1.showSelectedOnly = true; 下拉列表参数1.single = true; 下拉列表参数1.selectOnTop = false; 下拉列表参数1.submitOnChange = true; 下拉列表参数1.dropDown = true; 下拉列表参数1.submitOnChange = true; if(下拉列表参数1.submitOnChange){ var arr=下拉列表参数1.getSelectedObjects()[0]; debug(arr); var bcolSort = new BCol(arr, DECIMAL, true); //此处是聚合函数 var 和=new MeasureCol(Sum(col[bcolSort])); var 平均值=new MeasureCol(Avg(col[bcolSort])); var 最大值=new MeasureCol(Max(col[bcolSort])); var 中位数=new MeasureCol(Median(col[bcolSort])); var 平方和=new MeasureCol(SumSQ(col[bcolSort])); var 方差=new MeasureCol(Variance(col[bcolSort])); var 总体方差=new MeasureCol(PopulationVariance(col[bcolSort])); var 标准差=new MeasureCol(StandardDeviation(col[bcolSort])); var 标准误差=new MeasureCol(StandardError(col[bcolSort])); var 总体标准差=new MeasureCol(PopulationStandardDeviation (col[bcolSort])); //按照选择的列排序 var sortMax = new ChartMeasureCol(MAX, bcolSort, null); dcol1.sortBy = sortMax; 图表1.title = "表格绑定数据"; 图表1.binding.clearCols(); 图表1.binding.addCol(0, dcol1); 图表1.binding.addCol(1, dcol2); 图表1.binding.addCol(2, dcol3); 图表1.binding.addCol(3, dcol4); 图表1.binding.addCol(7, a); 图表1.binding.addCol(8, b); 图表1.binding.addCol(9, d); 图表1.binding.addCol(10, c); } 我后面的脚本是这样写的
回复

yhdata_NLKeTicM玄铁一 回复yhdata_lyaa
发表于 2025-03-31 14:02:02
辛苦帮忙看下下面的脚本,我是按照你们的文档手册写的
回复

yhdata_lyaa
发表于 前天 14:53 显示全部楼层
你是想要单选还是多选呢
回复

使用道具 6#

yhdata_NLKeTicM玄铁一 回复yhdata_lyaa
发表于 2025-03-31 14:58:08
单选的也行,多选的也可以
回复

yhdata_lyaa
发表于 前天 15:28 显示全部楼层
目前实现的效果是这样的,动态绑定,单选一个度量,图表绑定度量的几种计算

回复

使用道具 7#

yhdata_NLKeTicM玄铁一 回复yhdata_lyaa
发表于 2025-03-31 15:41:45
这种的写法我会的,但是这个有一个问题,就是在选择时下拉列表参数1的值没有动态改变,第二个问题是,这个计算会自动分类,但是我想计算的是某一列的最大,最小:
回复

yhdata_lyaa回复yhdata_NLKeTicM玄铁一
发表于 2025-03-31 15:57:28
脚本写在变化时运行
回复

yhdata_lyaa回复yhdata_NLKeTicM玄铁一
发表于 2025-03-31 15:59:48
把 市场级别去掉,只绑定度量,就只有一行数据了
回复

展开更多回复
yhdata_NLKeTicM玄铁一
发表于 前天 15:41 显示全部楼层
这种的写法我会的,但是这个有一个问题,就是在选择时下拉列表参数1的值没有动态改变,第二个问题是,这个计算会自动分类,但是我想计算的是某一列的最大,最小:
如下图:我想计算的是度量值1列的最大和最小 16514f7266bd0db6d980ea8cfa6d799.jpg
回复

使用道具 8#

yhdata_NLKeTicM玄铁一
发表于 前天 16:04 显示全部楼层



我也是参考你的这个写的,但是会报错,少了下拉列表参数1.setSelectedObjects(["度量值1","度量值2", "度量值3", "度量值4", "度量值5"], STRING);会报错


20b5e06401b48b8c4bb752da6ebeb84.jpg
回复

使用道具 9#

高级模式
您需要登录后才可以回帖 登录 | 免费注册

  • 官方微信

    欢迎关注永洪服务号!收费为0,价值无限

    扫码关注
  • 新浪微博

    让每位用户轻松挖掘数据价值!

    访问新浪微博
  • 智能客服
100W

用户等你来哦

Copyright   ©2012-2025  北京永洪商智科技有限公司  (京ICP备12050607) 京公网安备110110802011451号 |《永洪社区协议》
返回顶部