页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。其中添加了一个形状,并且其名称为"clickme"

 

2、在浏览器中,切换到“定制 -> 宏管理”页面,在左侧的资源树上找到对应的电子表格报表,双击该节点进入报表宏编辑界面。2、在浏览器的资源定制节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面

 

3、在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRender、并把下面宏代码复制到代码编辑区域。

...

代码块
languagejs
linenumberstrue
function main(spreadsheetReport) {
    //获取名称为 clickme的形状
    var shape = spreadsheetReport.shapesMap["clickme"];
    if (shape) {
        shape.style.cursor = "pointer";
        shape.onclick = doShapeButtonClick;
        
    }
}
// "形状"对象的click事件处理函数
function doShapeButtonClick(e) {
    var paramsInfo = [];
    openURL("openresource.jsp?resid=I4028818a32e86aa801543804fce10fda&showtoolbar=true&refresh=true", [{
        name: "paramsInfo",
        value: lang.toJSONString(paramsInfo)
    }])
};

如果需要获取到参数或者报表的其他方法,宏示例如下:

代码块
function main(spreadsheetReport) {
    //获取名称为 clickme的形状
    var shape = spreadsheetReport.shapesMap["clickme"];
    if (shape) {
        shape.style.cursor = "pointer";
        shape.onclick = doShapeButtonClick;         
     shape.spreadsheetReport = spreadsheetReport;
        //spreadsheetReport.addListener(shape, "click", doShapeButtonClick, spreadsheetReport);
    }
}
// "形状"对象的click事件处理函数
function doShapeButtonClick(e) {
    var spreadsheetReport = this.spreadsheetReport;
    var paramsInfo = [];
    var aa = spreadsheetReport.getParamDisplayValue("开始日期1"); //获取源目标报表的参数值
    alert(aa);
    openURL("openresource.jsp?resid=I4028818a32e86aa801543804fce10fda&showtoolbar=true&refresh=true", [{
        name: "paramsInfo",
        value: lang.toJSONString(paramsInfo)
    }])
};

 

关键对象总结

  • 通过var shape = spreadsheetReport.shapesMap["clickme"] 方法,获取指定的形状对象。
  • 通过设置shape.onclick 方法,为形状对象绑定事件处理函数。

...