参数表单

阅读(10) 标签: 参数表单, 传参, 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

参数表单源的类型

filedefineBean

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 formtarget属性取值相同

当前窗体,_self

data-report-hiddenParams

一些隐含的参数,如登录用户名、用户身份等

与报表中的params取值相同

data-report-needSubmit

是否需要自动生成提交参数的按钮

yesno

no

data-report-submitLabel

提交钮的外观定义

html元素或文字

查询

data-report-params

生成此参数表单时需用到的报表参数

与报表中的params取值相同

data-report-exceptionPage

显示参数表单异常信息的html页面

可以是绝对路径或相对路径名,相对于当前使用的html页面所在路径。如:/demo/error.htmlmyError.html

data-report-processor

参数提交时,预先进行一些处理的java类名

com.raqsoft.report.usermodel.input.AbstractParamProcessor继承的java类名

data-report-needInputCssStyle

是否需要使用报表中设计的单元格样式,如字体、颜色等

yesno

yes

data-report-needImportEasyui

是否需要引入easyuijscss文件

yesno

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

yesno

(不指定此参数时程序自动检测浏览器的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

汉语命令的转换表达式类型

sqlspl

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