本章节主要介绍HTML渲染参数表单的原理、用途、编写方式及属性说明。
原理和用途:
报表开发场景中,经常需要向报表传入查询参数(如客户名称、订购日期范围等),用于过滤报表数据。润乾报表可通过参数模板自动生成查询参数表单,实现向报表传递查询参数。
声明式渲染参数表单采用HTML标签属性驱动模式,在div元素上声明data-report-type="paramform"并配置相关属性。开发人员无需手动编写HTML查询表单、拼接参数处理逻辑;报表框架将自动解析参数模板,根据配置渲染完整的HTML查询表单并输出至客户端浏览器。用户在表单录入查询条件并提交后,框架自动将表单参数传递给报表,完成报表数据查询与展示。
声明式渲染写法:
在页面中编写如下div元素,即可发布参数表单:
<div id="paramform1"
data-report-type="paramform"
data-report-name="paramform1_form"
data-report-paramFileName="网格报表_arg.rpx"
data-report-needSubmit="yes" >
</div>
参数表单除上述独立声明渲染方式外,还可在加载报表时自动适配加载参数表单(报表名称_arg.rpx),自动适配示例如下:
<!-- 声明表单容器 -->
<div id="paramform1" > </div>
<!-- 声明报表容器 -->
<div id="reportContainer"
data-report-type="report"
data-report-name="report1"
data-report-reportFileName="网格报表.rpx"
data-report-funcBarLocation="no"
data-report-scanParamform="true"
data-report-paramformContainerId="paramform1"
data-report-paramformConfig='{"needSubmit":"yes", "submitLabel":"<b>查询</b>", "......":"......"}' >
</div>
参数表单渲染可用属性见下表:
(属性名大小写敏感,属性值必须放置在双引号内)
|
属性名 |
是否必填 |
属性含义 |
属性取值 |
缺省值 |
|
data-report-name |
是 |
参数表单form在网页中的ID标识 |
符合变量命名规则的字符串,在本网页中应是唯一的 |
无 |
|
data-report-srcType |
否 |
参数表单源的类型 |
file或defineBean |
file |
|
data-report-paramFileName |
否 |
生成参数表单的RPX文件名 |
报表文件名 |
无 |
|
data-report-beanName |
否 |
当参数表单源类型为defineBean,已保存到request中的bean的名称 |
符合变量命名规则的字符串,与保存参数表单源bean时的名称一致 |
无 |
|
data-report-contextName |
否 |
用bean的方式发布报表时,计算出报表bean时用的Context对象,存在session中的名称 |
存储在session中的名称 |
无 |
|
data-report-resultPage |
否 |
提交参数后,显示报表结果的页面 |
相对于应用根目录的页面URL |
当前页面 |
|
data-report-target |
否 |
显示结果的窗体名 |
与html form的target属性取值相同 |
当前窗体,_self |
|
data-report-hiddenParams |
否 |
一些隐含的参数,如登录用户名、用户身份等 |
与报表中的params取值相同 |
无 |
|
data-report-needSubmit |
否 |
是否需要自动生成提交参数的按钮 |
yes或no |
no |
|
data-report-submitLabel |
否 |
提交钮的外观定义 |
html元素或文字 |
查询 |
|
data-report-params |
否 |
生成此参数表单时需用到的报表参数 |
与报表中的params取值相同 |
无 |
|
data-report-exceptionPage |
否 |
显示参数表单异常信息的html页面 |
可以是绝对路径或相对路径名,相对于当前使用的html页面所在路径。如:/demo/error.html或myError.html |
无 |
|
data-report-processor |
否 |
参数提交时,预先进行一些处理的java类名 |
从com.raqsoft.report.usermodel.input.AbstractParamProcessor继承的java类名 |
无 |
|
data-report-needInputCssStyle |
否 |
是否需要使用报表中设计的单元格样式,如字体、颜色等 |
yes或no |
yes |
|
data-report-needImportEasyui |
否 |
是否需要引入easyui的js和css文件 |
yes或no |
no |
|
data-report-theme |
否 |
编辑控件的外观主题风格 |
default,black,bootstrap,gray,metro |
default |
|
data-report-callback |
否 |
参数表单提交后的回调js函数名,当用户提供此函数后,表单采用ajax的方式提交,不刷新页面,系统将data-report-resultPage的内容作为参数去调用data-report-callback函数 |
函数名 |
无 |
|
data-report-mobileMode |
否 |
指定参数表单是否使用手机模式发布,见注1 |
yes或no |
无(不指定此参数时程序自动检测浏览器的user-agent来判断是否是手机浏览器) |
|
data-report-hasParamFold |
否 |
是否显示参数表单的折叠栏 |
yes 或 no |
no |
|
data-report-resultContainer |
否 |
查询结果显示在页面中的哪个容器里(html对象,比如div) ,见注2 |
取值是容器的id |
reportContainer |
|
data-report-scale |
否 |
参数表单缩放显示比例 |
实数 |
1.0 |
|
data-report-nlrQueryFields |
否 |
汉语命令设置过滤时可使用的字段 |
字段名,多值用逗号分隔 |
无 |
|
data-report-nlrOrderFields |
否 |
汉语命令设置排序时可使用的字段 |
字段名,多值用逗号分隔 |
无 |
|
data-report-nlrMacroType |
否 |
汉语命令的转换表达式类型 |
sql或spl |
sql |
|
data-report-hideParamForm |
否 |
是否隐藏参数表单 |
yes 或 no |
no |
|
data-report-llmProperties |
否 |
LLM配置标识,指定llm.properties文件中参数模板大模型的前缀名称 |
llm.properties内定义的模型前缀字符串 |
deepseek_flash |
注1:
手机端使用参数模板时,data-report-mobileMode属性值需设置为yes。参数表单与报表将分为两个页面独立展示;可在渲染参数表单的div容器上添加data-report-resultPage属性,用于指定报表查询结果页面。
手机端参数模板存在如下限制:表单仅前两列生效,列宽设置无效。第一列为参数提示,第二列为输入区域,第二列宽度将自适应屏幕。第三列及之后的列均不生效。
注2:
data-report-resultContainer属性与data-report-resultPage属性互斥。一般情况下,data-report-resultPage指向的页面仅包含渲染报表的div元素,类似 queryXXX.html。