本章主要介绍大报表的原理、用途及详细说明。
◆ 实例请参考TAG实例 / 大报表
原理和用途:
针对sql数据集、脚本数据集和集算器数据集的大数据优化,产品提供了大报表运算。该功能在报表展现性能上有了很大提升,把数据不断分批取出,存储到临时文件中。这样用外存来换取内存,从而大大提高了报表的预览速度,使得大报表运算和普通报表运算速度无异。
可用tag标签完成大报表的解析及运算,并按用户配置的属性要求将html文件流输出到客户端。
详细说明:
大报表在JSP文件中用<prefix:big>标签来发布,prefix是用户在JSP文件头
指定tag定义文件时指定的前缀名。该定义语句如下所示:
<%@taglib uri="/WEB-INF/raqsoftReport.tld" prefix="report" %>
此定义语句必须写在JSP的开头,其中prefix的值可以自己指定,但tag标签中的前缀必须与其保持一致。
然后在要发布报表的地方用上面介绍的tag标签来发布,如:
<report:big name=”…” reportFileName=”…” …./>
此标签的属性说明见下表:
(属性名都是大小写相关,属性值必须放在双引号中)
属性名 |
是否必填 |
属性含义 |
属性取值 |
缺省值 |
name |
是 |
报表在网页中的ID标识 |
符合变量命名规则的字符串,在本网页中应是唯一的 |
无 |
srcType |
否 |
报表源的类型 |
见注1 |
file |
reportFileName |
否 |
当报表源类型为file时,要发布的报表文件 |
报表文件名 |
无 |
beanName |
否 |
当报表源类型为defineBean或reportBean时,已保存到request中的bean的名称 |
符合变量命名规则的字符串,与保存报表源bean时的名称一致,且在整个web应用中应唯一 |
无 |
params |
否 |
报表所需要的参数 |
用户提交的参数值 |
无 |
saveAsName |
否 |
报表另存为Excel的文件名(不用带扩展名) |
文本 |
与报表同名 |
exceptionPage |
否 |
显示报表异常信息的JSP页面 |
页面相对于应用根目录的路径名 |
无 |
needScroll |
否 |
是否固定上表头和左表头 固定表头后,页面报表不分页,分页方式设置无效 |
yes或no |
no |
scrollWidth |
否 |
固定表头报表的显示宽度 |
整数,象素值 或者百分数,如80% |
600 |
scrollHeight |
否 |
固定表头报表的显示高度 |
整数,象素值 或者百分数,如80% |
400 |
scrollBorder |
否 |
固定表头报表的边框 |
html的边框表示法,如:“border:1px solid red”,“border-top: 1px solid blue; border-left: 1px solid green;……” |
无 |
contextName |
否 |
用bean的方式发布报表时,计算出报表bean时用的Context对象,存在session中的名称 |
存储在session中的名称 |
无 |
rowNumPerPage |
否 |
每页展现的数据行数 |
整数 |
20 |
fetchSize |
否 |
每次读取的数据行数 |
整数 |
200 |
theme |
否 |
编辑控件的外观主题风格 |
default,black,bootstrap,gray,metro |
default |
needImportEasyui |
否 |
是否需要引入easyui的js和css文件,如需修改easyui的主题风格可参考修改easyui插件的主题小节 |
yes或no |
yes |
rowNumPerPrintPage |
否 |
大报表打印时每页数据行数 |
整数 |
默认与页面显示行数相同 |
rowNumPerExportPage |
否 |
大报表导出时每页数据行数 |
整数 |
1000000 |
exportPageFetchSize |
否 |
导出Excel时的单次取数量。值越小,单次取数少,内存开销就会少。 值要求小于等于rowNumPerExportPage,且 rowNumPerExportPage能被这个值整除,当不满足这两点时,值使用rowNumPerExportPage的值。 |
整数 |
20000 |
scale |
否 |
报表缩放显示比例 |
实数 |
1.0 |
paramCheck |
否 |
是否对禁用参数值做校验。 禁用参数值可通过在WEB-INF/raqsoftConfig.xml中的disallowedParamWordList 属性中配置 |
yes 或 no |
yes |
tableLayout |
否 |
设置表格的布局 |
auto:自动表格布局,列宽度由没有折行的单元格最宽内容设定。 fixed:固定表格布局,列宽由表格宽度和列宽度设定,与单元格内容无关。 |
fixed |
exportTips |
否 |
控制是否导出报表中的‘提示’信息。 ‘提示’信息在导出Excel文件中是以批注形式显示。 |
yes或no |
yes |
注1:srcType的取值:
(1) 如要发布的报表源为报表文件,其值为file。
(2) 如要发布的报表源为经过API处理的com.raqsoft.report.model.ReportDefine对象,则其值为defineBean。
(3) 如要发布的报表源为经过API处理的com.raqsoft.report.usermodel.IReport对象,则其值为reportBean。
注2:
paramCheck是否对禁用参数值做校验。默认是yes,会用内置的检测器做检查,如果不想对禁用参数值做校验,可以在预览的jsp中设置tag属性paramCheck = "no" 。