新增JeecgBoot BPM流程自动生成器,包含流程创建、修改及审批人配置功能,支持自然语言描述转化为BPMN XML,并通过API与JeecgBoot系统交互。
This commit is contained in:
170
.trae/skills/jimureport/references/constraints.md
Normal file
170
.trae/skills/jimureport/references/constraints.md
Normal file
@@ -0,0 +1,170 @@
|
||||
# 积木报表重要约束
|
||||
|
||||
1. **数据集编码 `db_code` 不能重复且只支持英文字符** — 同一个报表内的多个数据集,每个的 `db_code` 必须唯一。编码只能使用英文字母、数字和下划线,不能包含中文或特殊字符。重复会导致数据覆盖或查询异常。
|
||||
2. **`is_page` 分页只能有一个** — 一个报表中只能有一个数据集设置 `is_page=1`(启用分页),其余数据集必须为 `is_page=0`。多个数据集同时分页会导致分页冲突。
|
||||
|
||||
## 数据绑定语法
|
||||
|
||||
| 语法 | 说明 | 场景 |
|
||||
|------|------|------|
|
||||
| `${db.field}` | 单值绑定 | 主表字段、固定值 |
|
||||
| `#{db.field}` | 列表绑定 | 明细行、循环数据 |
|
||||
| `#{db.group(field)}` | 纵向分组 | 按字段分组汇总 |
|
||||
| `#{db.groupRight(field)}` | 横向分组 | 按字段横向展开 |
|
||||
| `#{db.dynamic(field)}` | 动态聚合 | 交叉表数据 |
|
||||
| `#{db.customGroup(field)}` | 自定义分组 | 横向自定义展开 |
|
||||
| `=SUM(D7)` | Excel 公式 | 列汇总 |
|
||||
|
||||
## 单元格属性
|
||||
|
||||
| 属性 | 说明 | 值 |
|
||||
|------|------|-----|
|
||||
| `merge` | 合并 | `[行数,列数]`,如 `[0,2]` 向右合并2列 |
|
||||
| `style` | 样式索引 | 引用 `styles` 数组下标 |
|
||||
| `loopBlock` | 循环块标记 | 1=属于循环块 |
|
||||
| `zonedEdition` | 分版标记 | 1/2/... 分版编号 |
|
||||
| `fixedHead` | 固定表头 | 1=固定 |
|
||||
| `fixedTail` | 固定表尾 | 1=固定 |
|
||||
| `aggregate` | 聚合类型 | 见下方分组配置 |
|
||||
| `subtotal` | 小计配置 | 见下方分组配置 |
|
||||
| `funcname` | 聚合函数 | 见下方分组配置 |
|
||||
| `subtotalText` | 小计行文本 | `"合计"` / `"小计"` |
|
||||
| `direction` | 展开方向 | 见下方分组配置 |
|
||||
| `sort` | 排序 | 见下方分组配置 |
|
||||
| `rendered` | 渲染标记 | `""` |
|
||||
| `config` | 配置标记 | `""` |
|
||||
| `decimalPlaces` | 小数位 | `"0"`/`"1"`/`"4"` |
|
||||
| `display` | 显示格式 | 见下方 display 值表 |
|
||||
| `fillForm` | 填报组件 | 组件配置对象 |
|
||||
|
||||
## 分组相关配置
|
||||
|
||||
### aggregate 聚合方式(polyWayList)
|
||||
|
||||
| 值 | 说明 |
|
||||
|-----|------|
|
||||
| `select` | 列表(普通列,不分组) |
|
||||
| `group` | 分组(相同值合并单元格) |
|
||||
|
||||
### subtotal 是否启用小计
|
||||
|
||||
| 值 | 说明 |
|
||||
|-----|------|
|
||||
| `"-1"` | 否(不显示小计行) |
|
||||
| `"groupField"` | 是(分组切换时显示小计/合计行) |
|
||||
|
||||
### funcname 聚合函数(aggregateList)
|
||||
|
||||
| 值 | 说明 | 用于 |
|
||||
|-----|------|------|
|
||||
| `"-1"` | 无(不计算,仅显示 subtotalText 文本) | 分组字段(地区、销售员等) |
|
||||
| `"SUM"` | 求和 | 数值字段(金额、数量等) |
|
||||
| `"MAX"` | 最大值 | 数值字段 |
|
||||
| `"MIN"` | 最小值 | 数值字段 |
|
||||
| `"AVERAGE"` | 平均值 | 数值字段 |
|
||||
| `"COUNT"` | 计数 | 任意字段 |
|
||||
|
||||
### direction 展开方向(directionList)
|
||||
|
||||
| 值 | 说明 |
|
||||
|-----|------|
|
||||
| `"down"` | 纵向(默认) |
|
||||
| `"right"` | 横向 |
|
||||
|
||||
### sort 排序(sortType)
|
||||
|
||||
| 值 | 说明 |
|
||||
|-----|------|
|
||||
| `"default"` | 默认(不排序) |
|
||||
| `"asc"` | 正序 |
|
||||
| `"desc"` | 倒序 |
|
||||
|
||||
### aggregate 高级模式(advancedList)
|
||||
|
||||
| 值 | 说明 |
|
||||
|-----|------|
|
||||
| `"default"` | 普通属性 |
|
||||
| `"dynamic"` | 动态属性(交叉表) |
|
||||
|
||||
### 分组单元格配置示例
|
||||
|
||||
**分组字段(地区,一级分组 — 合计):**
|
||||
```json
|
||||
{
|
||||
"text": "#{sales.group(region)}",
|
||||
"style": 4,
|
||||
"aggregate": "group",
|
||||
"subtotal": "groupField",
|
||||
"funcname": "-1",
|
||||
"subtotalText": "合计",
|
||||
"rendered": "",
|
||||
"config": ""
|
||||
}
|
||||
```
|
||||
|
||||
**分组字段(销售员,二级分组 — 小计):**
|
||||
```json
|
||||
{
|
||||
"text": "#{sales.group(salesman)}",
|
||||
"style": 4,
|
||||
"aggregate": "group",
|
||||
"subtotal": "groupField",
|
||||
"funcname": "-1",
|
||||
"subtotalText": "小计"
|
||||
}
|
||||
```
|
||||
|
||||
**数值字段(销售额,小计/合计行自动求和):**
|
||||
```json
|
||||
{
|
||||
"text": "#{sales.amount}",
|
||||
"style": 4,
|
||||
"funcname": "SUM",
|
||||
"subtotal": "-1",
|
||||
"display": "number",
|
||||
"rendered": "",
|
||||
"config": ""
|
||||
}
|
||||
```
|
||||
|
||||
**注意:** 数值字段的 `subtotal` 为 `"-1"`(不是 `"groupField"`),`funcname` 为 `"SUM"`。含义是:该字段不触发分组切换,但在分组切换产生的小计/合计行中自动按 SUM 聚合。
|
||||
|
||||
## display 显示格式(JmConst.CELL_FORMAT_*)
|
||||
|
||||
| display 值 | 说明 | 示例 |
|
||||
|------------|------|------|
|
||||
| `normal` | 默认文本 | — |
|
||||
| `number` | 数值(数值类型字段默认) | 58000 |
|
||||
| `percent` | 百分比 | 85% |
|
||||
| `rmb` | 人民币 | ¥58,000.00 |
|
||||
| `usd` | 美元 | $58,000.00 |
|
||||
| `eur` | 欧元 | €58,000.00 |
|
||||
| `date` | 日期 | 2026-03-20 |
|
||||
| `date2` | 日期(斜杠) | 2026/03/20 |
|
||||
| `time` | 时间 | 12:30:00 |
|
||||
| `datetime` | 日期时间 | 2026-03-20 12:30:00 |
|
||||
| `year` | 年 | 2026 |
|
||||
| `month` | 月 | 03 |
|
||||
| `base64Img` | Base64图片 | — |
|
||||
| `img` | 图片 | — |
|
||||
| `qrcode` | 二维码 | — |
|
||||
| `barcode` | 条形码 | — |
|
||||
| `richText` | 富文本 | — |
|
||||
|
||||
## 顶层配置
|
||||
|
||||
| 字段 | 说明 |
|
||||
|------|------|
|
||||
| `loopBlockList` | 循环块定义(含 `loopTime` 分栏次数) |
|
||||
| `zonedEditionList` | 分版区域定义 |
|
||||
| `fixedPrintHeadRows` | 固定打印表头 |
|
||||
| `fixedPrintTailRows` | 固定打印表尾 |
|
||||
| `groupField` | 分组字段 |
|
||||
| `isGroup` | 是否启用分组 |
|
||||
| `submitHandlers` | 填报提交处理器 |
|
||||
| `background` | 背景图配置 |
|
||||
| `imgList` | 图片列表 |
|
||||
| `displayConfig` | 二维码/条码显示配置 |
|
||||
| `dicts` | 引用的字典编码列表 |
|
||||
| `printConfig` | 打印配置(纸张/方向/边距) |
|
||||
| `merges` | 合并单元格列表(如 `"B1:H1"`) |
|
||||
Reference in New Issue
Block a user