版本及客户端说明
1.smartbi版本:V10
2.客户端:PC
3.浏览器:IE11、谷歌浏览器(Chrome)、火狐浏览器(Firefox)
设置方法
1、首先在电子表格设计器(Microsoft Office Excel)中,创建电子表格报表。
注:需求要对插入“图片”、“剪贴图”、“形状”等元素控件控件的单元格设置左父格,左父格填入需求跟随扩展的数据记录字段则可。如本报表中则是图片需求要跟随报表中的“销售区域”自动扩展,则需要对插入“图片”、“剪贴图”、“形状”等元素控件控件的单元格设置左父格为B5,如下图:
2、在浏览器的“分析展现”节点下,选中电子表格,右键选择 编辑宏 进入报表宏界面。
3、先基于这张电子表格报表对插入“图片”、“剪贴图”、“形状”等元素控件控件的单元格建一个符合需求的跳转规则。如下图:
查看该跳转规则生成的客户端代码,如下:(该跳转规则不能够删除)
4、在报表宏界面新建客户端模块。在弹出的新建模块对话框中,选择对象为spreadSheetReport、事件为onRender、并把下面宏代码复制到代码编辑区域。注:需要根据实际情况修改代码
宏类型
类型 | 对象 | 事件 |
---|---|---|
ClientSide | spreadsheetReport | onRender |
宏代码
function paramToString(v) { return v === null ? null: v.toString(); } function main(spreadsheetReport) { var imgs = spreadsheetReport.elemSheetFrame.contentWindow.document.getElementsByName("picture1"); //excel中图片的名称 for (var i = 0; i < imgs.length; i++) { imgs[i].__idx = i; imgs[i].style.cursor = "pointer"; imgs[i].onclick = function() { var cellLink = spreadsheetReport.elemSheetFrame.contentWindow.cellLinks[this.__idx]; var params = cellLink.l[0][1]; //打开报表并传递参数 spreadsheetReport.openURL("openresource.jsp?resid=I4028818a2578cab10152442a50a31943&showtoolbar=true&refresh=true", [{ name: "paramsInfo", value: lang.toJSONString([{ //参数名称 name: "产品类别", value: paramToString(params[0]), displayValue: paramToString(params[0]) }]) }]); } } }
备注:若想打开的目标资源覆盖跳转源报表,可以在新建的客户端宏的最后加上 ,"_self",如下图:
注意:
- 上述宏代码中的“形状”的对象名称 picture1,获取方法如下。在 Excel 设计器中,选择对应的“形状”,编辑栏左侧的“名称框”中的内容,就是对应形状的名称。
关键对象总结
- 通过var shape = spreadsheetReport.shapesMap["picture1"] 方法,获取指定的形状对象。
- 利用spreadsheetReport.addListener 方法,为形状对象绑定事件处理函数。
资源下载
报表资源:添加图片扩展及带参数跳转.xml