页面树结构
转至元数据结尾
转至元数据起始

示例说明

在灵活分析中,列名随着参数的变化而变化,如下图:


设置方法

  1. 在资源定制中,创建一张灵活分析(包含开始日期参数和结束日期参数);
  2. 选中灵活分析,右键选择 编辑宏 进入报表宏界面。
  3. 在报表宏界面新建两个客户端模块。其中一个在弹出的新建模块对话框中选择对象为simpleReport、事件为onRenderTable、并把下面宏代码复制到代码区域;另外一个在弹出的新建模块对话框中选择对象为simpleReport、事件为onRender、并把下面同样的宏代码复制到代码区域。

 

宏类型

类型

对象

事件

ClientSide

simpleReport

onRenderTable


宏类型

类型

对象

事件

ClientSide

simpleReport

onRender


宏代码

function main(simpleReport, simpleReportContext) {
    var starttime = "";
    var endtime = "";
    var paramObjList = simpleReport.paramPanelObj.paramObjList;
    for (var j = 0; j < paramObjList.length; j++) {
        var paramTag = paramObjList[j].paramTag;
        var param = paramTag.param;
        //参数名 
        if (param.alias == "开始时间") {
            starttime = simpleReport.paramPanelObj.getParamDisplayValue(param.id);
        }
        //参数名 
        if (param.alias == "结束时间") {
            endtime = simpleReport.paramPanelObj.getParamDisplayValue(param.id);
        }
    }
    var syear = starttime.substring(0, 4);
    var eyear = endtime.substring(0, 4);
    var sMonth = starttime.substring(5, 7);
    var eMonth = endtime.substring(5, 7);
    var lastYear = new Number(syear) - 1;
    var lastYear2 = new Number(eyear) - 1;
    var head1 = syear + "年" + sMonth + "月" + "-" + eyear + "年" + eMonth + "月";
    var head2 = lastYear + "年" + sMonth + "月" + "-" + lastYear2 + "年" + eMonth + "月";
    //判断月份相同 
    if (syear == eyear && sMonth == eMonth) {
        head1 = syear + "年" + sMonth + "月";
        head2 = lastYear + "年" + sMonth + "月";
    }
    var prevYearColIndex = simpleReport.getFieldIndexByAlias("产品名称");
    var currentYearColIndex = simpleReport.getFieldIndexByAlias("单价");
    var prevYearColIndex2 = simpleReport.getFieldIndexByAlias("数量");
    var currentYearColIndex2 = simpleReport.getFieldIndexByAlias("折扣");
    //设置第二列名 
    // simpleReport.grid.setColHeader(1, head1); 
    var childv = simpleReport.grid.getCell(1, prevYearColIndex);
    if (childv && childv.firstChild && childv.firstChild.firstChild) {
        childv.firstChild.firstChild.nextSibling.innerHTML = head2 + "<WBR>";
    }
    var childv = simpleReport.grid.getCell(1, prevYearColIndex2);
    if (childv && childv.firstChild && childv.firstChild.firstChild) {
        childv.firstChild.firstChild.nextSibling.innerHTML = head2 + "<WBR>";
    }
    //设置第三列名 
    // simpleReport.grid.setColHeader(2, head2); 
    var yearChild = simpleReport.grid.getCell(1, currentYearColIndex);
    if (yearChild && yearChild.firstChild && yearChild.firstChild.firstChild) {
        yearChild.firstChild.firstChild.nextSibling.innerHTML = head1 + "<WBR>";
    }
    var yearChild = simpleReport.grid.getCell(1, currentYearColIndex2);
    if (yearChild && yearChild.firstChild && yearChild.firstChild.firstChild) {
        yearChild.firstChild.firstChild.nextSibling.innerHTML = head1 + "<WBR>";
    }
}


关键对象总结

  • 获取参数清单列表对象:simpleReport.paramPanelObj.paramObjList;
  • 根据字段别名获取列号:simpleReport.getFieldIndexByAlias();
  • 根据坐标获取单元格对象:simpleReport.grid.getCell();

      资源文件:migrate.xml

  • 无标签