查询表单控件
逐个介绍查询表单的 14 种控件:可绑定的参数类型、属性面板中的全部属性、取值形态与使用限制。
概述
「查询表单设计」的组件库共 14 种控件。除「文本」「查询按钮」「重置按钮」外,每个控件都要绑定一个报表参数,且参数类型必须在该控件支持的范围内,否则「绑定参数」下拉里看不到该参数,点击对话框「确定」时也会被拦下。
选项类控件(下拉框、多选下拉、单选组、复选组)的选项来源和联动见 下拉选项来源与联动。
控件与参数类型对应表
| 控件 | 组件库名称 | 可绑定的参数类型 | 提交的值 |
|---|---|---|---|
| 文本 | 文本 | 不绑定 | 无,仅显示文字 |
| 输入框 | 输入框 | 字符串、数值 | 文本 |
| 数值框 | 数值框 | 数值 | 数字 |
| 下拉框 | 下拉框 | 字符串、数值 | 单个选项值 |
| 多选下拉 | 多选下拉 | 集合、字符串 | 集合绑集合参数为数组;绑字符串参数时为逗号分隔的字符串 |
| 树形下拉 | 树形下拉 | 字符串、数值、集合 | 单选为单个值,多选见下文 |
| 日期框 | 日期框 | 随「选择类型」而定,见下文 | 按「提交格式」的日期字符串 |
| 日期范围 | 日期范围 | 字符串 | 起、止两个参数,见下文 |
| 单选组 | 单选组 | 字符串、数值、布尔值 | 单个选项值 |
| 复选组 | 复选组 | 集合、布尔值 | 选项值数组 |
| 开关 | 开关 | 布尔值 | true / false |
| 搜索选择 | 搜索选择 | 随「选择模式」而定,见下文 | 单值或多值 |
| 查询按钮 | 查询按钮 | 不绑定 | 无 |
| 重置按钮 | 重置按钮 | 不绑定 | 无 |
参数类型的中文名对应关系:字符串 String、数值 Number、布尔值 Boolean、日期 Date、日期时间 DateTime、集合 List。
所有控件的通用属性
选中控件后,右侧「组件属性」面板按分区展示。
基本信息
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 组件标签 | 控件左侧显示的名称,必填 | 文本;文本、按钮类控件无此项 |
| 绑定参数 | 控件绑定的报表参数 | 下拉选择,仅列出类型兼容的参数;右侧设置图标可打开「报表参数配置」 |
组件属性中的通用项
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 占位符 | 控件为空时的提示文字 | 仅输入框、数值框、下拉框、多选下拉、日期框提供 |
| 是否必填 | 点击「查询」时检查该控件是否已填 | 开关,默认关 |
| 是否禁用 | 禁用后使用者不能修改控件的值 | 开关,默认关 |
样式配置
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 显示标签 | 是否显示控件标签 | 开关 |
| 标签宽度 | 标签占用的宽度 | 如 80px |
| 标签位置 | 标签在控件的左侧或右侧 | 左侧、右侧 |
位置信息
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| X坐标、Y坐标 | 控件在画布上的位置 | px,不小于 0 |
| 宽度 | 控件宽度 | px,有各控件的最小宽度 |
| 高度 | 控件高度 | px,不小于 30 |
各控件的专有属性
文本
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 文本内容 | 显示的文字,多行输入框 | 默认「文本内容」 |
输入框
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 多行输入 | 开启后变为多行文本框 | 开关 |
| 行数 | 多行时的行数,仅开启多行输入后出现 | 1 到 10 |
数值框
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 最小值 | 允许输入的下限 | 数字,不设则不限 |
| 最大值 | 允许输入的上限 | 数字,不设则不限 |
| 数值精度 | 小数位数 | 0 到 10;新建控件默认 2 |
| 步长 | 点击加减按钮的增量 | 不小于 0.01;未设置时按 1 |
日期框
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 选择类型 | 日期、日期时间、年份、年月、时间 | 默认「日期」 |
| 日期格式 | 控件上的显示格式,可从预设选择,也可直接输入自定义格式 | 见下表 |
| 提交格式 | 提交给参数的格式,仅「年份」「年月」类型出现 | 默认与日期格式相同 |
格式统一使用小写标记 yyyy、MM、dd、HH、mm、ss。各选择类型的默认格式与预设:
| 选择类型 | 可绑定的参数类型 | 默认格式 | 预设格式 |
|---|---|---|---|
| 日期 | 日期、日期时间、字符串 | yyyy-MM-dd |
yyyy-MM-dd、yyyy/MM/dd、yyyyMMdd、yyyy年MM月dd日、MM/dd/yyyy、dd-MM-yyyy、MM-dd-yyyy |
| 日期时间 | 日期时间、字符串 | yyyy-MM-dd HH:mm:ss |
yyyy-MM-dd HH:mm:ss、yyyy-MM-dd HH:mm、yyyy/MM/dd HH:mm:ss、yyyy/MM/dd HH:mm、yyyyMMdd HH:mm:ss、yyyy年MM月dd日 HH:mm:ss、yyyy年MM月dd日 HH:mm |
| 年份 | 字符串 | yyyy |
yyyy、yyyy年 |
| 年月 | 字符串 | yyyy-MM |
yyyy-MM、yyyy/MM、yyyyMM、yyyy年MM月 |
| 时间 | 字符串 | HH:mm:ss |
HH:mm:ss、HH:mm |
年份、年月、时间只能绑定字符串参数,面板会提示「建议绑定 String 类型参数」。控件宽度太窄时,运行时会自动隐藏日期框的清空按钮。
日期范围
一个控件同时写入起、止两个参数,适合按月或按日筛选统计区间。控件左侧是快捷项,右侧是双日历。
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 绑定参数 | 接收起始日期,字符串类型 | 必选 |
| 粒度 | 按天或按月 | 按天、按月;新建控件默认按月 |
| 止参数 | 接收结束日期的参数,字符串类型 | 不配置则只写起始参数 |
| 粒度参数 | 额外下发一个「按天还是按月出趋势」的参数名,如 p_grain |
不配置则不下发;见下文 |
| 快捷项 | 面板左侧显示哪些快捷项 | 不改动时显示该粒度下全部 |
| 最长跨度 | 起止之间最多允许的天数或月数(含首尾) | 正整数,留空不限;单位随粒度为「天」或「个月」 |
| 默认区间 | 使用者没选过时采用的快捷项 | 新建控件默认「近 12 个月」;清空则首屏不筛选 |
取值形态:
- 起始值、结束值按粒度提交为
yyyy-MM-dd(按天)或yyyy-MM(按月),按月时「止」也是所选月份,而不是月末。 - 数据集 SQL 里用起止两个参数:
WHERE 日期 BETWEEN ${$p_start} AND ${$p_end}
- 使用者没选、也没有默认区间时,起、止参数都不下发。
- 「粒度参数」下发的值:按月粒度恒为
month;按天粒度时,起止跨度(含首尾)不超过 31 天为day,否则为month。 - 面板上算出的区间超过「最长跨度」的快捷项不会显示。选择的区间(包括默认区间)超过最长跨度时,点击「查询」被拦截,报表区域提示「控件标签最长 N 个月」(按天粒度为「N 天」)。
内置快捷项,按粒度过滤后显示:
| 快捷项 | 可用粒度 |
|---|---|
| 今天、昨天、近 7 天、近 30 天 | 仅按天 |
| 本月、上月、近 3 个月、近 6 个月、近 12 个月、本季度、上季度、今年、去年 | 按天、按月 |
按月粒度下,「本月」是当月,「近 N 个月」是含当月的最近 N 个月。
树形下拉
「树形配置」分区的属性:
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 最大层级 | 树的最大层级数 | 1 到 10,新建默认 3 |
| 数据来源 | 自定义或数据集 | 自定义、数据集 |
| 选择模式 | 单选或多选 | 单选、多选;新建默认单选 |
| 值类型 | 多选时值的形态,仅多选出现 | 数组、字符串;新建默认数组 |
| 分隔符 | 值类型为字符串时的分隔符 | 如 , |
| 折叠标签数 | 多选时最多直接显示几个标签,其余折叠为「+N」 | 1 到 50,默认 1 |
| 父子独立 | 多选时勾选父节点是否联动子节点 | 开关 |
| 仅选叶子 | 只允许选择叶子节点 | 开关 |
| 可清空 | 是否显示清空按钮 | 开关 |
| 可搜索 | 是否可输入关键字过滤 | 开关 |
数据来源为「自定义」时,点「编辑树形数据」打开「树形数据编辑」对话框,用「添加根节点」「全部展开」「全部收起」维护节点。数据来源为「数据集」时:
| 属性 | 说明 |
|---|---|
| 数据集 | 提供树节点的数据集 |
| 显示字段 | 节点显示的文字字段 |
| 值字段 | 节点的取值字段 |
| 数据结构 | 「扁平结构」或「嵌套结构」 |
| ID字段、父ID字段 | 扁平结构时,用 ID 与父 ID 组树 |
| 子节点字段 | 嵌套结构时,存放子节点的字段 |
多选树的下拉面板顶部有「全选」「反选」「清空」和「已选 x / y」计数。
注意:设计器不提供树形下拉的懒加载配置。
多选下拉
选项配置见 下拉选项来源与联动。专有属性:
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 折叠标签数 | 控件保持单行,超出该数量的已选项折叠为「+N」,悬停可查看全部 | 1 到 50,默认 1;调大会让控件变高 |
下拉面板顶部有「全选」「反选」「清空」和「已选 x / y」计数;输入关键字搜索后,这三个按钮只作用于当前过滤出的选项。选项用虚拟滚动渲染,选项很多时也只渲染可见的行。
下拉框、单选组、复选组
这三个控件除了通用属性外只有选项配置,见 下拉选项来源与联动。复选组可绑定集合、布尔值参数,单选组可绑定字符串、数值、布尔值参数。
开关
开关只有通用属性中的「是否必填」「是否禁用」。绑定布尔值参数,提交 true / false;绑定字符串或数值参数时,SQL 里的布尔比较不会成立,因此设计器只允许绑布尔值参数。
搜索选择
适合医生、药品、患者等数据量大的字典:点开弹窗,输入关键字搜索,在分页表格中勾选记录,并可把整行的其他字段带回别的参数。
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| SQL数据集 | 提供记录的数据集,只能选 SQL 数据集 | 必选 |
| 关键字占位 | 弹窗里搜索框和控件的提示文字 | 新建默认「请输入关键字」 |
| 弹窗标题 | 弹窗标题 | 新建默认「选择记录」 |
| 值字段 | 提交给参数的字段 | 必选;未选时运行时弹窗查不到任何记录 |
| 显示字段 | 控件中显示的字段 | 必选 |
| 服务端筛选 | 关键字与分页下推到数据库执行 | 默认开;仅对报表模板内定义的 SQL 数据集生效,公共数据集、存储过程、SQL Server 自动回落为内存过滤 |
| 选择模式 | 单选或多选 | 单选、多选 |
| 值类型 | 多选时提交数组还是字符串 | 数组、字符串 |
| 分隔符 | 值类型为字符串时的分隔符 | 半角逗号 ,、全角逗号 ,、顿号 、,只能选这三个 |
| 每页条数 | 弹窗表格每页条数 | 5 到 100,新建默认 10 |
| 搜索列 | 关键字匹配哪些列 | 可添加多列;不配置则匹配可见列 |
| 显示列 | 弹窗表格中的列及列标题 | 至少添加一列,否则弹窗表格没有列;列标题默认同字段名 |
| 字段映射 | 选中记录后,把源字段的值写回目标参数 | 每项为「源字段 → 目标参数」 |
| 清空联动 | 清空控件时是否同时清空映射写回的参数 | 开关 |
可绑定的参数类型随选择模式变化:单选绑字符串或数值;多选且值类型为数组时只能绑集合;多选且值类型为字符串时只能绑字符串。多选数组配合集合参数时,SQL 里写 IN (${$参数名}),占位符会按选中的个数展开。
选择模式为多选时,字段映射的结果跟随值类型:数组模式写回数组,字符串模式按分隔符拼接。
弹窗中的操作:输入关键字后按回车或点「搜索」;单选时点击一行后点「确定」;多选时勾选多行,可点「清空已选」,再点「确定」。
查询按钮与重置按钮
两个按钮没有可配置的属性,按钮文字固定为「查询」「重置」,行为见 查询表单概述。
示例
用日期范围控件做「近 12 个月各科室收入」的筛选:
- 「查询参数设置」中添加两个字符串参数
p_start、p_end。 - 「查询表单设计」中添加「日期范围」控件,「绑定参数」选
p_start,「止参数」选p_end,「粒度」选「按月」,「默认区间」保持「近 12 个月」,「最长跨度」填 24。 - 新建 SQL 数据集,数据源选
demo(系统初始化时自动导入演示数据所用的数据源,本例要求演示数据已导入),SQL 使用demo_销售订单表的年月列(格式yyyy-MM的文本,演示数据内置):
SELECT 所在大区, SUM(订单金额) AS 金额
FROM demo_销售订单
WHERE 年月 BETWEEN ${$p_start} AND ${$p_end}
GROUP BY 所在大区
- 保存并预览。打开报表即按默认区间查询;改选区间超过 24 个月时,点击「查询」被拦截,提示「日期范围最长 24 个月」(提示中的名称取控件的「组件标签」)。
提示:演示表
demo_销售订单的数据范围为 2023 至 2025 年,默认区间「近 12 个月」以当前系统日期计算,可能落在数据范围之外;此时改选 2024 年内的月份即可看到数据。
注意事项
注意:控件类型与参数类型不兼容时无法保存。例如日期范围只能绑字符串参数,因为月份没有对应的日期形态。
注意:搜索选择的「值字段」未选时,弹窗查不到任何记录;设计器只给出提示,不会阻止保存。
注意:多选值绑定字符串参数时以逗号拼接,值本身含逗号会被拆开。需要精确传值时绑集合参数。