本章节主要介绍HTML渲染大报表的原理、用途、编写方式及属性说明。
原理和用途:
针对SQL数据集、脚本数据集、集算器数据集做大数据优化,产品提供大报表运算能力,显著提升报表展现性能:数据分批读取并保存到临时文件,以外存换取内存,让大报表预览速度接近普通报表。
声明式渲染大报表采用HTML标签属性驱动模式,在div元素上声明data-report-type="big"并配置相关属性。开发人员无需手动调用润乾报表API,由报表框架自动完成大报表解析与运算,根据配置将渲染完成的HTML输出至客户端浏览器,实现大报表展示。
声明式渲染写法:
在页面中编写如下div元素,即可发布大报表:
<div id="reportContainer"
data-report-type="big"
data-report-name="report1"
data-report-reportFileName="大报表.rpx" >
</div>
属性说明:
大报表渲染可用属性见下表:
(属性名大小写敏感,属性值必须放置在双引号内)
|
属性名 |
是否必填 |
属性含义 |
属性取值 |
缺省值 |
|
data-report-name |
是 |
报表在网页中的ID标识 |
符合变量命名规则的字符串,在本网页中应是唯一的 |
无 |
|
data-report-srcType |
否 |
报表源的类型 |
见注1 |
file |
|
data-report-reportFileName |
否 |
当报表源类型为file时,要发布的报表文件 |
报表文件名 |
无 |
|
data-report-beanName |
否 |
当报表源类型为defineBean时,已保存到request中的bean的名称 |
符合变量命名规则的字符串,与保存报表源bean时的名称一致,且在整个web应用中应唯一 |
无 |
|
data-report-params |
否 |
报表所需要的参数 |
用户提交的参数值 |
无 |
|
data-report-saveAsName |
否 |
报表另存为Excel的文件名(不用带扩展名) |
文本 |
与报表同名 |
|
data-report-exceptionPage |
否 |
显示大报表异常信息的html页面 |
可以是绝对路径或相对路径名,相对于当前使用的html页面所在路径。如:/demo/error.html或myError.html |
无 |
|
data-report-needScroll |
否 |
是否固定表头 固定表头后,页面中大报表仍会采取分页显示 |
yes或no 见注2 |
no |
|
data-report-scrollWidth |
否 |
固定表头报表的显示宽度 |
整数,像素值 或者百分数,如80%,见注2 |
600 |
|
data-report-scrollHeight |
否 |
固定表头报表的显示高度 |
整数,像素值 或者百分数,如80%,见注2 |
400 |
|
data-report-scrollBorder |
否 |
固定表头报表的边框 |
html的边框表示法,如:“border:1px solid red”,“border-top: 1px solid blue; border-left: 1px solid green;……” |
无 |
|
data-report-contextName |
否 |
用bean的方式发布报表时,计算出报表bean时用的Context对象,存在session中的名称 |
存储在session中的名称 |
无 |
|
data-report-rowNumPerPage |
否 |
每页展现的数据行数 |
整数 |
20 |
|
fetchSize |
否 |
每次读取的数据行数 |
整数 |
200 |
|
data-report-theme |
否 |
编辑控件的外观主题风格 |
default,black,bootstrap,gray,metro |
default |
|
data-report-needImportEasyui |
否 |
是否需要引入easyui的js和css文件 |
yes或no |
no |
|
data-report-rowNumPerPrintPage |
否 |
大报表打印时每页数据行数 |
整数 |
默认与页面显示行数相同 |
|
data-report-rowNumPerExportPage |
否 |
大报表导出时每页数据行数 |
整数 |
1000000 |
|
data-report-exportPageFetchSize |
否 |
导出Excel时的单次取数量。值越小,单次取数少,内存开销就会少。 值要求小于等于data-report-rowNumPerExportPage,且 data-report-rowNumPerExportPage能被这个值整除,当不满足这两点时,值使用data-report-rowNumPerExportPage的值。 |
整数 |
20000 |
|
data-report-scale |
否 |
报表缩放显示比例 |
实数 |
1.0 |
|
data-report-paramCheck |
否 |
是否对禁用参数值做校验。 禁用参数值可通过在WEB-INF\raqsoftConfig.xml中的disallowedParamWordList 属性中配置 |
yes 或 no |
yes |
|
data-report-tableLayout |
否 |
设置表格的布局 |
auto:自动表格布局,列宽度由没有折行的单元格最宽内容设定。 fixed:固定表格布局,列宽由表格宽度和列宽度设定,与单元格内容无关。 |
fixed |
|
data-report-exportTips |
否 |
控制是否导出报表中的‘提示’信息。 ‘提示’信息在导出Excel文件中是以批注形式显示。 |
yes或no |
yes |
注1:
data-report-srcType取值说明:
(1) 待发布报表源为报表文件时,取值为file。
(2) 待发布报表源为经过API处理的com.raqsoft.report.model.ReportDefine对象时,取值为defineBean。
注2:
使用data-report-needScroll属性时,必须在报表所在div元素上显式指定width与height;若报表外层容器未设置宽高,会出现显示异常。
若data-report-scrollWidth和data-report-scrollHeight使用百分比取值,滚动区域实际宽高会根据报表外层父元素的宽高计算;如果外层元素未定义宽高,百分比取值无法生效,将引发显示异常。
示例:在自定义HTML中,先为报表外层div元素设置宽高,保证滚动区域正常渲染。
<div id="reportContainer" style="width:100%; height:100vh;"
data-report-type="big"
data-report-name="report1"
data-report-reportFileName="大报表.rpx" >
data-report-needScroll="yes"
data-report-scrollWidth="80%"
data-report-scrollHeight="60%"
</div>
注3:
data-report-paramCheck是否对禁用参数值执行校验。默认值为yes,框架会使用内置检测器进行校验;若不需要对禁用参数值校验,可在大报表div属性中配置data-report-paramCheck = "no" 。