参数表单

阅读(100) 标签: 参数表单, 传参, paramform,

本章节主要介绍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。