永洪社区

标题: 交叉表 动态添加数据样式问题 [打印本页]

作者: lijw50    时间: 2022-1-7 10:50
标题: 交叉表 动态添加数据样式问题
8.0版本交叉表脚本与那行正常,但是升级到9.0后 交叉表的脚本需要修改样式麻烦看一下


作者: lijw50    时间: 2022-1-7 11:19
帮忙看看  脚本私发
作者: _贝贝    时间: 2022-1-7 13:01
90版本有什么问题呢,看下效果截图
作者: lijw50    时间: 2022-1-7 13:13
本帖最后由 lijw50 于 2022-1-7 16:30 编辑
永洪tech-Muse 发表于 2022-1-7 13:01
90版本有什么问题呢,看下效果截图

80版本运行正常的脚本  但是到90版本运行时出现了问题 交叉表对应的脚本defaultSelectFirst(syb);

function getDateByYearMon(obj){
  var arr = obj.firstDates[0].substring(1).split('-');
  return parseDate((arr[0] * 100) + (Integer(arr[1]) + 1),'yyyyMM');
}

var date = getDateByYearMon(Year_Mon);
param['monthname'] = substring(formatDate(date,'yyyyMM'),4,6) + '月';
param['YearMon'] = integer(formatDate(date,'yyyyMM'));
//param['YearMonStart'] = integer(formatDate(dateAdd(date,'month',-11),'yyyyMM'));
param['YearMonStart'] = integer(formatDate(date,'yyyy') + '01');
param['YearMonEnd'] = integer(formatDate(date,'yyyy') + '12');




var sel_arr = dimensions.getSelectedObjects();
var chexi = dimensions_chexi.getSelectedObjects();

var targetArr = new Array();

var arr = new Array();
var arr_chexi = new Array();

var color1 =new Color(15921906);
var color2 =new Color();

if(param['target_dim'] == '公司目标'){

  dimensions.setSelectedObjects([].STRING);
  arr.push('项目');
  arr.push('指标名称');

  targetArr.push('战法');
  targetArr.push('月度');
  var loc01 =new Locator([''],OBJECT,DETAIL);
   文本11.setForeground(loc01,color1);

  列表过滤1.enabled = 列表过滤3.enabled = 列表过滤4.enabled = 列表过滤5.enabled = 列表过滤6.enabled = false;
  列表过滤7.enabled = 列表过滤8.enabled = 列表过滤9.enabled = 列表过滤10.enabled = 列表过滤11.enabled = false;
  文本23.visible = true;
}else if(param['target_dim'] == '战法目标'){
  arr.push('项目');
  for (var i = 0; i < sel_arr.length; i++) {
    arr.push(sel_arr);
  }
  arr.push('指标名称');

  targetArr.push('公司');
  targetArr.push('月度');

  列表过滤1.enabled = 列表过滤3.enabled = 列表过滤4.enabled = 列表过滤5.enabled = 列表过滤6.enabled = true;
  列表过滤7.enabled = 列表过滤8.enabled = 列表过滤9.enabled = 列表过滤10.enabled = 列表过滤11.enabled = true;
  文本23.visible = false;
}else {
  arr.push('项目');
  for (var i = 0; i < sel_arr.length; i++) {
    arr.push(sel_arr);
  }
  arr.push('指标名称');

  targetArr.push('公司');
  targetArr.push('战法');

  列表过滤1.enabled = 列表过滤3.enabled = 列表过滤4.enabled = 列表过滤5.enabled = 列表过滤6.enabled = true;
  列表过滤7.enabled = 列表过滤8.enabled = 列表过滤9.enabled = 列表过滤10.enabled = 列表过滤11.enabled = true;
  文本23.visible = false;
}


for(var i = 0; i < chexi.length; i++){
  arr_chexi.push(chexi);
}

param['target'] = targetArr;


交叉表1.binding.clearRowHeaders();

for(var i = 0; i < arr.length; i++){
  var bcol = new BCol(arr, STRING, true);
  var dimCol = new DimCol(bcol);
  if(arr == '项目'){
    bcolSort = new BCol('PL',INTEGER,true);
    dimCol.sortType = 5;
    dimCol.groupSpan = true;
    dimColSort = new MeasureCol(Max,bcolSort,null);
    dimCol.sortBy = dimColSort;
  }else if(arr == '指标名称'){
    bcolSort = new BCol('排序',INTEGER,true);
    dimCol.sortType = 5;
    dimCol.groupSpan = true;
    dimColSort = new MeasureCol(Max,bcolSort,null);
    dimCol.sortBy = dimColSort;
  }
  debug(arr)

  交叉表1.binding.addRowHeader(dimCol,i);

  //添加“车系”行
  if(arr == '项目'){
  if(arr_chexi.length > 0){
    var bcol = new BCol(arr_chexi, STRING, true);
    var dimCol = new DimCol(bcol);
        DEBUG()
    交叉表1.binding.addRowHeader(dimCol);
  }
  }
}


作者: _贝贝    时间: 2022-1-7 13:53
交叉表区域的剧中对齐可以参考函数setVAlignment:设置垂直对齐方式。  setHAlignment:设置水平对齐方式。
var loc = new Locator(["产品种类", "咖啡因类型"], CELL, HEADER);
var loc1 = new Locator(["产品种类", "产品种类"], CELL, HEADER);
//图表1.getHAlignment(loc,1)
图表1.setVAlignment(loc,3)
图表1.setHAlignment(loc1,1)

交叉表locator定位参考链接
https://www.yonghongtech.com/hel ... ighlightsub=locator
作者: lijw50    时间: 2022-1-7 14:31
永洪tech-Muse 发表于 2022-1-7 13:53
交叉表区域的剧中对齐可以参考函数setVAlignment:设置垂直对齐方式。  setHAlignment:设置水平对齐方式。 ...

没有效果
作者: lijw50    时间: 2022-1-7 15:18
永洪tech-Muse 发表于 2022-1-7 13:53
交叉表区域的剧中对齐可以参考函数setVAlignment:设置垂直对齐方式。  setHAlignment:设置水平对齐方式。 ...

帮忙看看呢
作者: lijw50    时间: 2022-1-7 16:27
永洪tech-Muse 发表于 2022-1-7 13:53
交叉表区域的剧中对齐可以参考函数setVAlignment:设置垂直对齐方式。  setHAlignment:设置水平对齐方式。 ...

帮忙看看呢?是我的脚本写的有问题么
作者: _贝贝    时间: 2022-1-7 16:52
把你加的脚本截图看下呢,加在哪里的呢
作者: lijw50    时间: 2022-1-10 09:06
永洪tech-Muse 发表于 2022-1-7 16:52
把你加的脚本截图看下呢,加在哪里的呢

放在变化运行时
作者: _贝贝    时间: 2022-1-10 09:55
lijw50 发表于 2022-1-10 09:06
放在变化运行时

loc和loc1分别表示两个区域,看你的脚本loc和loc1是一样的,
可以设置一个背景颜色来确定一下是否定位到了对应的区域
建议再设置组件的刷新间隔为1s看一下是否有缓存影响


var loc = new Locator(["产品种类", "咖啡因类型", CELL, HEADER);
var loc1 = new Locator(["产品种类", "产品种类", CELL, HEADER);
//图表1.getHAlignment(loc,1)
图表1.setVAlignment(loc,1)
图表1.setHAlignment(loc,5)

图表1.setVAlignment(loc1,1)
图表1.setHAlignment(loc1,5)


var color = new Color(java.awt.Color.RED);
图表1.setBackground(loc, color);

var color1 = new Color(java.awt.Color.GREEN);
图表1.setBackground(loc1, color1);









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