1. 概述
contentPane 是 contentWindow 下面的最常用的一个属性,为存放 cpt 报表内容的容器。
注:contentPane 只有在 cpt 中才有,frm 中没有
2. 引用 contentPane
1)在普通模板中
在普通模板的 JS 脚本中直接使用 contentPane 就能获取到该对象。
2)报表嵌在网页的 iframe 中
如果报表嵌在网页的 iframe 中,首先在 iframe 中获取 contentWindow,然后获取属性 contentPane 对象,如下:
var contentPane=document.getElementById('reportFrame').contentWindow.contentPane;
例如需要在网页中获取报表填报页面的一个按钮,并执行点击事件,就可以写:
document.getElementById('reportFrame').contentWindow.contentPane.getWidgetByName('控件名').fireEvent('click');
3. contentPane 常用属性
| parameterEl | 返回对象参数界面 |
|---|---|
| curLGP | 返回 curLGP 对象,只有填报预览下才有,详细可查看 curLGP |
| currentPageIndex | 当前所在页,只有分页的时候有 |
| reportTotalPage | 总页数,只有分页的时候有 |
| zoom | 缩放比例 |
注:currentPageIndex 和 reportTotalPage 只有分页的时候有,包含在 cpt 的分页预览下和在 cpt 填报预览且 __cutpage__=v 填报分页情况下。
4. contentPane 常用方法
| 方法 | 参数 | 说明 |
|---|---|---|
| appendReportRC(num,cell) | 在选中行后面插入 num 行,只有填报表才可以用 | |
| deleteReportRC() | 删除指定行,只有填报表才可以用 | |
| deleteRows(param) | param:数组,例如['A1','B1'],需注意对应单元格必须设置为可扩展 | 批量删除 param 所在记录,param 为一串单元格坐标的字符串数组 |
| emailReport() | 邮件发送 | |
| exportReportToExcel('指定格式') | 参数为 page 时分页导出;simple 原样导出;sheet 分页分 sheet 导出 | |
| exportReportToImage() | 输出图片 | |
| exportReportToPDF() | 输出 PDF | |
| exportReportToWord() | 输出 Word | |
| fireEvent() | 触发事件 | |
| flashPrint() | Flash 打印 | |
| getWidgetByName() | 获取填报页面的控件、参数面板里的控件、决策报表主体里的控件,对控件进行操作,详细可查看 引用控件及控件方法列表 | |
| getCellValue(cell)/getCellValue(reportIndex,columnIndex,rowIndex) | reportIndex 选填,sheet编号,从 0 开始; columnIndex 必填,列号,从 0 开始; rowIndex 必填,行号,从 0开始; cell 单元格编号 | 获取单元格值,只有填报下有 |
| gotoFirstPage() | 跳转到第一页,只有分页的时候有 | |
| gotoLastPage() | 跳转到最后一页,只有分页的时候有 | |
| gotoPreviousPage() | 跳转到上一页,只有分页的时候有 | |
| gotoNextPage() | 跳转到下一页,只有分页的时候有 | |
| gotoPage(pn, para, noCache) | 跳转到指定 num 页,只有分页的时候有,还包含决策报表里的报表块有分页的情况 | |
| importExcelData() | 在线导入 Excel,只有填报表才可以用 | |
| on() | 监听 | |
| pdfPrint() | PDF 打印 | |
| printPreview() | 打印预览,只有数据分析时才有 | |
| pageSetup() | 页面设置,只有数据分析才有 | |
| scale(str) | 缩放,str 为"+"时放大,为"-"时缩小 | |
setCellValue(cell,null,value)/setCellValue(reportIndex ,col,row,value) | reportIndex 选填,sheet编号,从 0 开始; columnIndex 必填,列号,从 0 开始; rowIndex 必填,行号,从 0开始; cell 单元格编号; value 值 | 给单元格赋值,只有填报表才有 |
| verifyReport() | 数据校验,只有填报表才可以用 | |
| writeReport([Object reportIndex]) | 选填,sheet编号,从 0 开始 | 提交报表,只有填报表才可以用 contentPane.writeReport()提交所有sheet; contentPane.writeReport(reportIndex)提交指定的 sheet |
| verifyAndWriteReport([Object isAllSheet]) | 选填,true 为提交所有sheet | 先对数据进行校验,校验成功则提交数据,只有 cpt 填报表才可以用 contentPane.verifyAndWriteReport() 为提交当前 sheet; contentPane.verifyAndWriteReport(true)为提交所有 sheet |
| stash(undefined,true) | 暂存,第一个参数是按钮,第二个参数是是否提示成功,也可以不传参 | |
| refreshAllSheets() | 多 sheet 填报中,刷新所有 sheet,且刷新后会停留在上次查看的 sheet 页,只有填报表下可以用 | |
| loadSheetByIndex(sheet的序号) | 多 sheet 切换 | |
| loadSheetByName(sheet的名字) | 多 sheet 切换 | |
| noClientPrint(popupMarginSetup, ieQuietPrint) | popupMarginSetup:是否弹出设置窗口,true 为弹出,false 为不弹出 ieQuietPrint: IE静默打印设置 true 为静默,false 为不静默 | 零客户端打印 |
| newNativePrint(popupDialog, serverURL) | popupDialog:是否弹出设置窗口,true 为弹出,false 为不弹出 serverURL:报表所在的服务器地址,例如 http://localhost:8080 | 本地打印 |
| importExcel() | 在线导入 Excel,只有填报表才可以用 |
5. contentPane 监听事件
通过上述中的 contentPane.on() 来监听下述事件,监听事件的使用方法可参考: JS 获取当前编辑行单元格行号
| 方法 | 说明 |
|---|---|
| startload | 加载起始 |
| afterload | 加载结束 |
| beforetopdf | PDF 导出前 |
| aftertopdf | PDF 导出后 |
| beforetoexcel | Excel 导出前 |
| aftertoexcel | Excel 导出后 |
| beforetoword | Word 导出前 |
| aftertoword | Word 导出后 |
| beforetoimage | 导出图片前 |
| aftertoimage | 导出图片后 |
| beforepdfprint | PDF 打印前 |
| afterpdfprint | PDF 打印后 |
| beforeflashprint | Flash 打印前 |
| afterflashprint | Flash 打印后 |
| afterverify | 校验后,只有填报有 |
| beforeverifywrite | 校验提交前,只有填报有 |
| afterverifywrite | 校验提交后,只有填报有 |
| beforewrite | 填报前,只有填报有 |
| afterwrite | 填报后,只有填报有 |
| writesuccess | 填报成功,只有填报有 |
| writefailure | 填报失败,只有填报有 |
| beforeappend | 添加行前,只有填报有 |
| afterappend | 添加行后,只有填报有 |
| beforedelete | 删除行前,只有填报有 |
| afterdelete | 删除行后,只有填报有 |
| cellselect | 填报/数据分析时选择格子时触发 |
| tabchange | 对多 tab 的模板 tab 切换时触发 |
索引:
填报模板中的相关接口也可参考:控件接口,单元格接口,工具栏接口,页面交互接口,消息接口
参数界面接口可参考 参数界面 JS 实例
