子报表与明细
在单据模板中用「网格报表」组件内嵌明细表格,以及用分组区域按字段分组,含宽度、高度、空结果策略和分组分页选项。
概述
单据的主体是按毫米定位的字段,一对多的明细(处方药品、费用项目、出库清单)需要用表格表达。单据模板提供两种方式:
| 方式 | 适用场景 |
|---|---|
| 「网格报表」组件 | 在单据中嵌入一张网格报表,明细行数随数据增长。内嵌网格的设计方式与网格报表一致 |
| 「分组」区域 | 按数据集字段分组,每组由组头、明细、组尾构成,适合"一个患者多条记录""一张订单多个商品"的分段展示 |
功能入口
- 「网格报表」组件:单据设计器左侧组件工具栏,拖到画布。选中后右侧属性面板出现「网格报表策略」,点击「进入内嵌网格设计」编辑。
- 「分组」区域:在画布区域的右键菜单中选择「添加分组」或「在后面添加分组」,也可使用设计器工具栏的添加分组。选中分组区域后,属性面板中设置数据集、分组字段和分页选项。
操作步骤
添加明细表格
- 从组件工具栏把「网格报表」拖到内容区或报表尾等区域。
- 选中该组件,点击「网格报表策略」中的「进入内嵌网格设计」,进入内嵌网格设计界面。
- 在内嵌网格中按网格报表方式设置列、表头,并把明细单元格绑定到数据集字段,设置扩展方向。内嵌网格使用当前单据模板的数据集和报表参数,界面顶部的「返回单据模板」按钮用于退出。
- 返回后,属性面板的「当前状态」显示「已配置网格内容」。
- 设置宽度、高度和空结果策略(见下表),保存并预览。
按字段分组
- 在右键菜单选择「添加分组」,选中新增的分组区域。
- 选择「数据集」和「分组字段」,需要排序时点击「新增排序」,选择字段和升序或降序。
- 在分组的组头、明细、组尾中放置组件。组头、组尾内可使用
$$group.字段名(当前分组值)、$$group.$index(分组序号)、$$group.$count(分组总数);组尾中还可选择聚合函数(求和、计数、平均、最小、最大)自动生成如$$group.$sum('amount')的表达式。 - 在「分页选项」中设置分组的分页行为(见下表)。
参数说明
网格报表组件策略
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 宽度策略 | 表格宽度与主内容区的关系 | 适应主内容(默认)、动态 |
| 窄于主内容 | 仅「动态」宽度下出现,表格比主内容窄时的处理 | 适应主内容(默认)、保持原宽 |
| 宽于主内容 | 仅「动态」宽度下出现,表格比主内容宽时的处理 | 适应主内容(默认)、截断 |
| 高度策略 | 表格高度如何确定 | 自动扩展(默认)、固定设计高度、自然高度 |
| 最大高度 | 仅「自动扩展」下出现,单位 mm | 0 或留空表示不限制 |
| 空结果 | 数据集没有数据时的表现 | 保留占位(默认)、隐藏组件、显示占位提示 |
| 占位提示 | 空结果选「显示占位提示」时出现,填写显示文案 | 文本 |
| 终止线 | 明细结束处画斜线或「以下空白」 | 见 终止线 / 处方线 |
分组区域
| 属性 | 说明 | 取值/默认值 |
|---|---|---|
| 分组名称 | 分组的名称 | 文本 |
| 数据集 | 分组使用的数据集 | 当前模板的数据集 |
| 分组字段 | 按此字段分组 | 数据集字段 |
| 启用 | 是否启用该分组 | 开关 |
| 排序 | 组内排序字段与方向 | 升序、降序,可添加多项 |
| 跨页重复组头 | 分组跨页时是否在新页重复组头 | 开关 |
| 分组分页方式 | 分组与分页的关系 | 正常分页、组头跟首条数据、整组尽量同页 |
| 分组前换页 | 每个分组前另起一页 | 开关 |
| 重启页号 | 每个分组重新从 1 编页码 | 开关 |
| 过滤条件 | 点击「配置过滤条件」,对分组数据筛选 | 条件列表 |
分组内可定义分组变量,在组头、明细、组尾中通过 $$groupVars.变量名 引用;表达式中 dataset('数据集') 读取当前组数据,rawDataset('数据集') 读取分组前的原始数据。
示例
处方单:上方为患者信息,中间为药品明细,下方为医师签字栏。
- 单据内容区放置患者姓名、性别、年龄等文本组件,绑定到主数据集字段。
- 在其下拖入「网格报表」组件,「宽度策略」保持「适应主内容」,「高度策略」选「固定设计高度」。
- 进入内嵌网格设计,第一行写表头「药品名称」「规格」「数量」,第二行分别绑定数据集
drug_list的drug_name、spec、qty字段,扩展方向向下。 - 「空结果」选「显示占位提示」,占位提示填「无药品」。
- 报表尾放置签字栏文本组件。预览时药品行随数据增长;没有药品时显示「无药品」。
注意事项
注意:「高度策略」为「自动扩展」时组件随明细增高,不会有剩余空白,也就不会出现终止线。需要终止线时使用「固定设计高度」或「自然高度」。
提示:内嵌网格里父格、子格的扩展关系与网格报表相同,见 父子格与数据绑定。