weaver-e10-builder 1.6.10 → 1.6.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/report-admin.d.ts.map +1 -1
- package/dist/commands/report-admin.js +378 -2
- package/dist/commands/report-admin.js.map +1 -1
- package/dist/commands/report-validate.d.ts.map +1 -1
- package/dist/commands/report-validate.js +1066 -3
- package/dist/commands/report-validate.js.map +1 -1
- package/dist/commands/report.d.ts.map +1 -1
- package/dist/commands/report.js +341 -3
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/workflow-after-submit-comment.d.ts +3 -0
- package/dist/commands/workflow-after-submit-comment.d.ts.map +1 -0
- package/dist/commands/workflow-after-submit-comment.js +56 -0
- package/dist/commands/workflow-after-submit-comment.js.map +1 -0
- package/dist/commands/workflow-setting.d.ts.map +1 -1
- package/dist/commands/workflow-setting.js +2 -67
- package/dist/commands/workflow-setting.js.map +1 -1
- package/dist/services/report/blueprint.d.ts +109 -0
- package/dist/services/report/blueprint.d.ts.map +1 -0
- package/dist/services/report/blueprint.js +322 -0
- package/dist/services/report/blueprint.js.map +1 -0
- package/dist/services/report/build.d.ts.map +1 -1
- package/dist/services/report/build.js +8 -3
- package/dist/services/report/build.js.map +1 -1
- package/dist/services/report/card.d.ts +65 -0
- package/dist/services/report/card.d.ts.map +1 -0
- package/dist/services/report/card.js +151 -0
- package/dist/services/report/card.js.map +1 -0
- package/dist/services/report/copy-health.d.ts +31 -0
- package/dist/services/report/copy-health.d.ts.map +1 -0
- package/dist/services/report/copy-health.js +87 -0
- package/dist/services/report/copy-health.js.map +1 -0
- package/dist/services/report/dataset-heal.d.ts +64 -0
- package/dist/services/report/dataset-heal.d.ts.map +1 -0
- package/dist/services/report/dataset-heal.js +89 -0
- package/dist/services/report/dataset-heal.js.map +1 -0
- package/dist/services/report/dataset-ids.d.ts +70 -0
- package/dist/services/report/dataset-ids.d.ts.map +1 -0
- package/dist/services/report/dataset-ids.js +149 -0
- package/dist/services/report/dataset-ids.js.map +1 -0
- package/dist/services/report/dataset.d.ts.map +1 -1
- package/dist/services/report/dataset.js +3 -1
- package/dist/services/report/dataset.js.map +1 -1
- package/dist/services/report/empty-dataset.d.ts +51 -0
- package/dist/services/report/empty-dataset.d.ts.map +1 -0
- package/dist/services/report/empty-dataset.js +213 -0
- package/dist/services/report/empty-dataset.js.map +1 -0
- package/dist/services/report/field-binding.d.ts +75 -0
- package/dist/services/report/field-binding.d.ts.map +1 -0
- package/dist/services/report/field-binding.js +160 -0
- package/dist/services/report/field-binding.js.map +1 -0
- package/dist/services/report/forms.d.ts +32 -0
- package/dist/services/report/forms.d.ts.map +1 -1
- package/dist/services/report/forms.js +90 -0
- package/dist/services/report/forms.js.map +1 -1
- package/dist/services/report/formula-parent.d.ts +25 -0
- package/dist/services/report/formula-parent.d.ts.map +1 -0
- package/dist/services/report/formula-parent.js +116 -0
- package/dist/services/report/formula-parent.js.map +1 -0
- package/dist/services/report/locate.d.ts +40 -0
- package/dist/services/report/locate.d.ts.map +1 -0
- package/dist/services/report/locate.js +122 -0
- package/dist/services/report/locate.js.map +1 -0
- package/dist/services/report/reports.d.ts +4 -0
- package/dist/services/report/reports.d.ts.map +1 -1
- package/dist/services/report/reports.js +4 -2
- package/dist/services/report/reports.js.map +1 -1
- package/dist/services/report/scene.d.ts +22 -0
- package/dist/services/report/scene.d.ts.map +1 -0
- package/dist/services/report/scene.js +145 -0
- package/dist/services/report/scene.js.map +1 -0
- package/dist/services/report/types.d.ts +28 -0
- package/dist/services/report/types.d.ts.map +1 -1
- package/dist/services/report/verify.d.ts +24 -0
- package/dist/services/report/verify.d.ts.map +1 -1
- package/dist/services/report/verify.js +115 -2
- package/dist/services/report/verify.js.map +1 -1
- package/dist/services/report/workbook.d.ts +12 -1
- package/dist/services/report/workbook.d.ts.map +1 -1
- package/dist/services/report/workbook.js +107 -8
- package/dist/services/report/workbook.js.map +1 -1
- package/dist/services/workflow-after-submit-comment.d.ts +20 -0
- package/dist/services/workflow-after-submit-comment.d.ts.map +1 -0
- package/dist/services/workflow-after-submit-comment.js +81 -0
- package/dist/services/workflow-after-submit-comment.js.map +1 -0
- package/ecodecmd/src/build.js +36 -12
- package/package.json +1 -1
- package/skill-docs/SKILL.md +4 -4
- package/skill-docs/_catalog.md +10 -1
- package/skill-docs/references/coding/guide-page-code.md +95 -0
- package/skill-docs/references/components/ref-component-common.md +98 -0
- package/skill-docs/references/report/add-dataset-registration-guide.md +44 -22
- package/skill-docs/references/report/advanced-crosstab-tree-guide.md +82 -0
- package/skill-docs/references/report/ai-report-workflow.md +100 -100
- package/skill-docs/references/report/api-auth-headers.md +129 -0
- package/skill-docs/references/report/api-report-build-fast-path.md +274 -275
- package/skill-docs/references/report/app-datasource-lookup-guide.md +230 -230
- package/skill-docs/references/report/branch-scene-guide.md +293 -0
- package/skill-docs/references/report/build-resilience-guide.md +99 -0
- package/skill-docs/references/report/card-report-guide.md +110 -0
- package/skill-docs/references/report/cell-config-echo-guide.md +44 -9
- package/skill-docs/references/report/cell-transform-guide.md +9 -9
- package/skill-docs/references/report/column-split-report-guide.md +96 -0
- package/skill-docs/references/report/condition-format-guide.md +49 -24
- package/skill-docs/references/report/cross-dataset-filter-guide.md +180 -69
- package/skill-docs/references/report/crosstab-raw-workbook-guide.md +265 -0
- package/skill-docs/references/report/dataset-query-filter-guide.md +231 -235
- package/skill-docs/references/report/dataset-sidebar-ops-guide.md +75 -34
- package/skill-docs/references/report/dataset-table-field-contract-guide.md +196 -46
- package/skill-docs/references/report/datasource-metadata-guide.md +128 -119
- package/skill-docs/references/report/datasource-selection-and-parent-filter-guide.md +183 -148
- package/skill-docs/references/report/date-range-query-reference.md +97 -102
- package/skill-docs/references/report/default-header-style-guide.md +8 -8
- package/skill-docs/references/report/designer-blank-prevention-guide.md +8 -8
- package/skill-docs/references/report/dossier-report-guide.md +69 -0
- package/skill-docs/references/report/drilldown-report-guide.md +59 -0
- package/skill-docs/references/report/event-hreflink-guide.md +53 -47
- package/skill-docs/references/report/expansion-block-parent-config-guide.md +208 -0
- package/skill-docs/references/report/failure-cleanup-and-nonblocking-guide.md +183 -0
- package/skill-docs/references/report/field-bind-exact-match-guide.md +208 -208
- package/skill-docs/references/report/financial-stats-report-guide.md +89 -0
- package/skill-docs/references/report/formula-cell-api-guide.md +325 -258
- package/skill-docs/references/report/golden-case-summary-sheet.md +200 -0
- package/skill-docs/references/report/guide-report-build.md +6 -1
- package/skill-docs/references/report/hidden-row-and-header-merge-guide.md +10 -10
- package/skill-docs/references/report/layout-showlocation-freeze-guide.md +39 -10
- package/skill-docs/references/report/multi-report-crosstab-casebook.md +263 -0
- package/skill-docs/references/report/paged-group-report-guide.md +68 -0
- package/skill-docs/references/report/preaggregate-auto-disable-guide.md +24 -13
- package/skill-docs/references/report/query-condition-api-guide.md +145 -125
- package/skill-docs/references/report/ref-report-commands.md +41 -3
- package/skill-docs/references/report/report-baseinfo-defaults-guide.md +117 -117
- package/skill-docs/references/report/report-building-guide.md +52 -52
- package/skill-docs/references/report/report-case-prompts.md +104 -0
- package/skill-docs/references/report/report-config-schema.md +281 -281
- package/skill-docs/references/report/report-create-modes-guide.md +73 -35
- package/skill-docs/references/report/report-data-model.md +131 -131
- package/skill-docs/references/report/report-delivery-contract.md +23 -3
- package/skill-docs/references/report/report-designer-feature-map.md +30 -35
- package/skill-docs/references/report/report-help-guide.md +304 -0
- package/skill-docs/references/report/report-internal-error-guide.md +71 -0
- package/skill-docs/references/report/report-knowledge-base.md +27 -27
- package/skill-docs/references/report/report-lifecycle-api-guide.md +126 -94
- package/skill-docs/references/report/report-list-page-ops-guide.md +54 -8
- package/skill-docs/references/report/report-permission-guide.md +99 -102
- package/skill-docs/references/report/report-requirement-analysis-template.md +93 -29
- package/skill-docs/references/report/report-self-check-guide.md +164 -164
- package/skill-docs/references/report/report-verification-discipline-guide.md +203 -0
- package/skill-docs/references/report/safe-partial-save-guide.md +151 -151
- package/skill-docs/references/report/shard-freeze-report-guide.md +97 -0
- package/skill-docs/references/report/snowflake-id-precision-guide.md +84 -84
- package/skill-docs/references/report/spec-build-schema.md +71 -71
- package/skill-docs/references/report/targeted-fix-guide.md +155 -97
- package/skill-docs/references/report/user-request-scope-only-guide.md +23 -4
- package/skill-docs/references/workflow/guide-after-submit-comment.md +58 -0
- package/skill-docs/references/workflow/guide-workflow.md +6 -0
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> 全部挂在 `e10-cli report` 下。全局加 `--profile <名>` 切环境、`--json` 出结构化结果。
|
|
4
4
|
> 破坏性命令(`delete` / `lifecycle recycle purge` / `cleanup --apply`)必须用户本轮明确要求才执行。
|
|
5
|
+
> 两级写法等价:`report build spec` = `report build`、`report find form` = `report find`、
|
|
6
|
+
> `report find form-global` = `report find-global`、`report join suggest` = `report join-suggest`、
|
|
7
|
+
> `report app search` = `report app-search`、`report verify self` = `report verify all`、
|
|
8
|
+
> `report verify query` = `report query verify`、`report restore cell` = `report restore-cell`、
|
|
9
|
+
> `report sheets restore` = `report restore-sheets`。
|
|
5
10
|
|
|
6
11
|
---
|
|
7
12
|
|
|
@@ -11,20 +16,32 @@
|
|
|
11
16
|
|---|---|
|
|
12
17
|
| `report build --spec <file>` | 声明式一步建表(**首选**)。spec 最小形状 `{"appId":"…","name":"报表名","columns":[{"title":"列标题"}]}` —— 列定义的键名是 **`columns[]`(不是 `fields`)**,**`form` 是表单名字符串(不是对象)**,写错会回「spec 需要包含 appId / name(报表名) / columns[]」;完整 schema 见 `spec-build-schema.md`。spec 写 `sources[]` 即**多数据源**,见 `guide-report-multisource.md` |
|
|
13
18
|
| `report render <reportId> --app-id <id> [--page-row-count <n>] [--condition <json>] [--dump <file>]` | **渲染回读**:真跑一遍拿展开后的行列数,是「关联/公式/条件格式真的生效」的唯一证据 |
|
|
19
|
+
| `report render values <reportId> --app-id <id> [--max-rows] [--max-cols]` | 渲染后打印**取值网格**(确认数据真的出来了;公式格恒无值) |
|
|
14
20
|
| `report build --spec <file> --dry-run` | 只做定源与字段预检 |
|
|
15
21
|
| `report build ... --form-confirmed --source-id <id>` | 用户已确认表 |
|
|
16
22
|
| `report build ... --field-confirmed "列A,列B"` | 确认文案与显示名不同 |
|
|
17
23
|
| `report find <appId> [表名]` / `--list` / `--suggest <kw>` | 应用内定源 |
|
|
24
|
+
| `report find form-global --name <表名> (--app-name <应用名>\|--app-id <id>) [--max-apps 6]` | 跨应用限次找表:精确名优先,默认扫 6 个 / 硬顶 12;缺应用线索 exit 5 |
|
|
25
|
+
| `report rebuild from-blueprint --blueprint <f> [--allow-ids <id,id>] [--apply]` | 按蓝图整表重建(灾后救援)。数据集声明用 `dataset` / `datasets[]`,格上用 `datasetKey` 选择;落库前跑克隆纪律与数据集白名单门禁。格坐标可写 `x/y` 或 `r/c`,`field`/`text` 可简写 Field/Const |
|
|
26
|
+
| `report restore cell --report-id --app-id --cell-file <json> [--preagg-off] [--apply]` | 补写/恢复单个单元格;丢失的 Formula 格走这条通道才会存活 |
|
|
27
|
+
| `report sheets restore --report-id --app-id --layout <快照.json> [--apply]` | 多 sheet 被并成单页后,按参考快照的 `sheetIndex` 还原分页 |
|
|
18
28
|
| `report create blank --app-id --name` | 空白报表 |
|
|
19
29
|
| `report create template --app-id --name --model-id` | 按模板建 |
|
|
20
30
|
| `report create quick --app-id --name --quickly-file <f>` | 快速构建(列表式) |
|
|
21
31
|
| `report create models` | 列出可用模板 |
|
|
32
|
+
| `report card example [paragraph] [--out <f>]` | 导出卡片式报表 spec 模板(发票卡片 / 段落明细表) |
|
|
33
|
+
| `report card build --spec <f> [--dry-run]` | 直构卡片式报表:锚点格纵向扩展、卡片内其余格左父格指向锚点;落库后回读校验 |
|
|
34
|
+
| `report scene rules` | 打印三个分支场景的判定条件与强制配置 |
|
|
35
|
+
| `report scene detect --req <f>` | 从需求文本识别场景 A/B/C(只读) |
|
|
36
|
+
| `report scene check <id> --app-id [--scene A\|B\|C] [--seq-cells "x,y"] [--jump-cells "x,y=N"]` | 场景体检:公共父格 / 序号格 / 跳转链接 |
|
|
37
|
+
| `report scene apply <id> --app-id --scene A\|B\|C [...] [--apply]` | 按场景写入配置(默认预演):A 公共父格 `--at x,y --anchor "x,y;x,y"`;B 序号格 `--seq-cells`;C 跳转 `--jump-cells "x,y=N" --base --open-type` |
|
|
22
38
|
|
|
23
39
|
## 读取
|
|
24
40
|
|
|
25
41
|
| 命令 | 用途 |
|
|
26
42
|
|---|---|
|
|
27
43
|
| `report read <reportId> [--fields]` | 基础信息 + 数据集 + 字段记录 |
|
|
44
|
+
| `report dump cells <reportId> --app-id` | **只读**:按行打印每个格子的类型与内容,并标出空缺(定位「整格丢失」) |
|
|
28
45
|
| `report list --app-id <id>` | 应用内报表列表 |
|
|
29
46
|
| `report app-search --name <kw>` | 搜应用 |
|
|
30
47
|
|
|
@@ -38,9 +55,10 @@
|
|
|
38
55
|
| `report dataset preview --dataset-id` | 预览数据 |
|
|
39
56
|
| `report dataset check-used --report-id --dataset-id` | 是否仍被引用 |
|
|
40
57
|
| `report dataset delete --report-id --dataset-id [--force]` | 移除数据集 |
|
|
41
|
-
| `report dataset agg get\|save\|clear --dataset-id [--file]` |
|
|
58
|
+
| `report dataset agg get\|save\|clear --dataset-id [--file]` | 左侧数据集菜单里的「数据聚合」(不是解析优化的预聚合) |
|
|
42
59
|
| `report dataset sort get\|save\|clear --dataset-id [--file]` | 排序 |
|
|
43
60
|
| `report dataset replace --file <f>` | 整表换源(含 fieldMap) |
|
|
61
|
+
| `report dataset heal [<reportId>] --app-id [--purge] [--apply]` | 修复数据集形态:`type=LOGIC` 大写原地换型(单元格引用自动重映射),`--purge` 顺带删 `sourceId` 为空的脏数据集。默认预演;落库后提示跑 `fix field-binding` |
|
|
44
62
|
|
|
45
63
|
## 查询条件
|
|
46
64
|
|
|
@@ -83,6 +101,9 @@
|
|
|
83
101
|
| 命令 | 用途 |
|
|
84
102
|
|---|---|
|
|
85
103
|
| `report group list\|add\|delete --app-id [--name] [--group-id]` | 报表分组 |
|
|
104
|
+
| `report group audit --app-id` | 分组归属体检:找出 `groupId=0` 的孤儿报表(菜单选取列不出它们,exit 3) |
|
|
105
|
+
| `report group set --app-id --report-id --group-id [--apply]` | 把单张报表归到指定分组(默认预演) |
|
|
106
|
+
| `report group sync --app-id [--report-id ...] [--apply]` | 批量把 `groupId=0` 孤儿归到 -1 |
|
|
86
107
|
| `report lifecycle copy-and-menu --app-id --source-name` | 复制 + 授权 + 挂菜单 |
|
|
87
108
|
| `report lifecycle add-menu --app-id --report-id --menu-name` | 挂菜单 |
|
|
88
109
|
| `report lifecycle move --app-id --report-id --group-id` | 移到分组 |
|
|
@@ -104,11 +125,22 @@
|
|
|
104
125
|
| `report validate href (--map\|--file\|--list) [--fix]` | 事件超链接 |
|
|
105
126
|
| `report validate gridline\|blank (--file\|--inline)` | 网格线 / 空白风险 |
|
|
106
127
|
| `report validate style [--list\|--inline]` | 默认分层样式 |
|
|
107
|
-
| `report verify bind\|all\|meta\|condition\|format\|blank\|gridline\|contract\|limit <reportId>` |
|
|
128
|
+
| `report verify bind\|all\|meta\|condition\|format\|blank\|gridline\|contract\|limit\|anchors <reportId>` | 线上体检。`anchors` 专查汇总格三件套与父格锚点 |
|
|
108
129
|
| `report verify parents <reportId> --app-id <id>` | 跨数据源父格体检(入口格唯一 / fieldKey 三段式 / id=currentField / 算子白名单 / 锚点) |
|
|
130
|
+
| `report copy-health --app-id <id> [--report-id <rid>] [--probe] [--clean]` | 能否复制体检:数据集形态(大写 type / 空 sourceId / 重复挂载)+ 复制探针;有阻断项 exit 3 |
|
|
131
|
+
| `report locate --report-id <rid> [--app-id <id>|--app-name <名>] [--max-apps <n>]` | 只有报表 ID 时反查所属应用、是否正常态、是否在回收站;未找到 exit 3 |
|
|
132
|
+
| `report fix field-binding [<reportId>] --app-id [--table-name <名>] [--apply]` | 回补 Field 格的 `text`(字段显示名)与 `tableName`(数据集回显名);换数据集 / heal 后必跑。默认预演 |
|
|
133
|
+
| `report fix dataset-id [<reportId>] --app-id [--apply]` | 把外来数据集 ID 按引用自身的 sourceId 换回本报表;无法解析或映射冲突时整单中止(exit 3) |
|
|
134
|
+
| `report fix empty-dataset <reportId> --app-id [--dataset-id <did>] [--source-type eteams] [--source-group sql] [--keep-old] [--apply]` | 重挂「字段为 0」的空壳数据集并整表重映射,删旧空壳 |
|
|
109
135
|
| `report fix table-name <reportId> [--apply]` | 补 tableName |
|
|
110
136
|
| `report fix freeze <reportId> [--anchor x,y] [--apply]` | 冻结单元格 |
|
|
137
|
+
| `report fix parent <reportId> --set-parent "x,y=leftX,leftY" [--apply]` | 左父格定点修正(默认预演) |
|
|
138
|
+
| `report fix dataset-name <reportId> --app-id [--apply]` | 去掉数据集名里重复拼的类型后缀(`X(业务模块)(业务模块)` → `X(业务模块)`) |
|
|
111
139
|
| `report fix echo <reportId> --app-id` | 同 `query fix-echo` |
|
|
140
|
+
| `report check-ids <reportId> --app-id` | **只读**:单元格里的数据集 id 是否都来自本报表(外来 id 会让设计器字段下拉空白) |
|
|
141
|
+
| `report formula parent check <reportId> --app-id` | **只读**体检:公式格左父格是否等于被引用字段的区域根格;refX/refY 是否 -1;父格链是否经过公式格(不一致 exit 3) |
|
|
142
|
+
| `report formula parent align <reportId> --app-id [--apply]` | 把公式格左父格对齐到区域根格,并把 refX/refY 归 -1 |
|
|
143
|
+
| `report formula top <reportId> --set-top-parent "x,y=topX,topY" [--apply]` | 上父格定点修正(交叉表合计列 → 列头格) |
|
|
112
144
|
|
|
113
145
|
## 分析
|
|
114
146
|
|
|
@@ -116,6 +148,8 @@
|
|
|
116
148
|
|---|---|
|
|
117
149
|
| `report join-suggest --app-id (--parent-source\|--parent-form) (--child-source\|--child-form)` | 推断两表关联字段(须用户确认) |
|
|
118
150
|
| `report py preagg (--fields <f> \| --report-id <id>) [--layout <f>]` | 预聚合可用性判定 |
|
|
151
|
+
| `report preagg check <reportId> --app-id` | 线上判定:该报表是否应关闭预聚合(命中阻断条件 exit 2) |
|
|
152
|
+
| `report preagg disable <reportId> --app-id [--apply]` | 关闭预聚合(写 `sheetConfig.dataPreAgg=false`) |
|
|
119
153
|
| `report py left-filter --parent-ds/--parent-src/--parent-field --child-ds/--child-src/--child-field [--type]` | 算跨数据集父格筛选(输出 `subordination` + `leftFilterField`),定点修复时手工拼配置用 |
|
|
120
154
|
|
|
121
155
|
---
|
|
@@ -129,8 +163,12 @@
|
|
|
129
163
|
| 2 | 成功但有警告;或 `--strict` 下有「待用户确认」项;预聚合建议关闭 |
|
|
130
164
|
| 3 | `report build` / `join-suggest`:需要用户指定表,未建表 |
|
|
131
165
|
| 4 | `report build`:需要用户指定字段,未建表或已删未完成报表 |
|
|
166
|
+
| 5 | `report find form-global`:缺少应用线索(不做全系统扫描) |
|
|
132
167
|
|
|
133
168
|
## 默认只读、要 `--apply` 才写的命令
|
|
134
169
|
|
|
135
|
-
`fix table-name`、`fix freeze`、`fix query-default`、`fix query-style`、`
|
|
170
|
+
`fix table-name`、`fix freeze`、`fix query-default`、`fix query-style`、`fix parent`、
|
|
171
|
+
`fix dataset-name`、`fix field-binding`、`fix dataset-id`、`fix empty-dataset`、
|
|
172
|
+
`dataset heal`、`restore cell`、`sheets restore`、`rebuild from-blueprint`、`cleanup`、
|
|
173
|
+
`group set`、`group sync`。
|
|
136
174
|
不带 `--apply` 时只预演并打印将要做的改动。
|
|
@@ -1,117 +1,117 @@
|
|
|
1
|
-
# 报表基础字段默认值与命名规范(强制)
|
|
2
|
-
|
|
3
|
-
> **权威来源**:`EdcReportDevBaseController.saveReportBaseInfo`(`@RequestParam defaultValue`)
|
|
4
|
-
> + `EdcReportDevBaseServiceImpl.buildNewReportDto` / `buildEmptySheetProp` / `resetReportListI18nName`
|
|
5
|
-
> **原则**:**对齐平台内置默认值**;禁止凭感觉改空、改哨兵值、或往 `name`/`nameLabelId` 塞特殊字符。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 一、baseInfo 内置默认值(设计器新建 API)
|
|
10
|
-
|
|
11
|
-
`POST /api/bs/edc/report/baseInfo`(`weaver-edcreportd` · `EdcReportDevBaseController`):
|
|
12
|
-
|
|
13
|
-
| 参数 | 源码 `defaultValue` / 行为 | Agent / CLI **必须** |
|
|
14
|
-
|------|---------------------------|----------------------|
|
|
15
|
-
| `groupId` | **`"0"`** | 未指定分组时传 **`0`**。会出现在页面「全部」(`list?groupid=-1` 哨兵=查全部) |
|
|
16
|
-
| `showOrder` | **`"1"`** | 未指定时传 **`1`**;勿传空 |
|
|
17
|
-
| `name` | **必填**(无 default) | 非空;见 §二 |
|
|
18
|
-
| `nameLabelId` | 可选(无 default) | **无多语言时显式传 `"-1"`**(与线上正常报表一致);勿传空串、勿省略后写成脏值 |
|
|
19
|
-
| `id` | `"0"` = 新建 | 新建用 `0`;更新用真实 reportId |
|
|
20
|
-
| `appId` | `"0"`(须改为真实应用) | **必须**真实 appId |
|
|
21
|
-
| `reportModel` | `"0"` | 无模板时保持 `0`;**模版创建**时传模板报表 ID(见 `report-create-modes-guide.md`) |
|
|
22
|
-
| `quicklyParam` | 无(省略) | **快速构建-列表式**时传 QuicklyParam **JSON 字符串**;与 `reportModel>0` 互斥(模板优先) |
|
|
23
|
-
| `systemType`(新建分支) | 服务端置 **`1`** | 普通 EB 报表勿擅自改成空/其它 |
|
|
24
|
-
|
|
25
|
-
`buildNewReportDto` 其它落库默认:
|
|
26
|
-
|
|
27
|
-
| 字段 | 默认 |
|
|
28
|
-
|------|------|
|
|
29
|
-
| `version` | `"1"` |
|
|
30
|
-
| `enable` | `1` |
|
|
31
|
-
| `configurable` | `0` |
|
|
32
|
-
| `frontView` | `0` |
|
|
33
|
-
| `enableInsight` | `0` |
|
|
34
|
-
| `deleteType` | `0` |
|
|
35
|
-
|
|
36
|
-
空 Sheet(`buildEmptySheetProp`):`gridLine=0`、`rowHeaderVisible=0`、`colHeaderVisible=0`(与「页面布局默认关闭」一致)。
|
|
37
|
-
|
|
38
|
-
### 1.1 哨兵值 ≠ 入库默认值(强制)
|
|
39
|
-
|
|
40
|
-
| 值 | 用途 | Agent 行为 |
|
|
41
|
-
|----|------|------------|
|
|
42
|
-
| **`groupid=-1`(list 查询参数)** | 「查全部报表」哨兵 | 仅查询用 |
|
|
43
|
-
| **`baseInfo.groupId=-1`** |
|
|
44
|
-
| **`groupId=0`(Controller 新建 defaultValue)** | 新建 API 未指定分组时的入参默认 | 新建可显式传 `0`;**不要**事后乱改已有报表分组 |
|
|
45
|
-
|
|
46
|
-
> **强制**:已有报表的 `groupId` **只认 `baseInfo` 回读**。保存 `saveReportDevInfo` 时把 `baseInfo.groupId` **原样写入 multipart**,禁止脚本硬编码 `0`/`-1`/臆造 ID。
|
|
47
|
-
> 改分组只能用户明确要求后走 `removeReport` 等换组接口。
|
|
48
|
-
|
|
49
|
-
### 1.2 禁止随便改空 / 乱设分组
|
|
50
|
-
|
|
51
|
-
| 禁止 | 说明 |
|
|
52
|
-
|------|------|
|
|
53
|
-
| 把 `groupId` / `showOrder` / `nameLabelId` 改成 `""` / `null` 指望「用默认」 | multipart 空串可能覆盖或落脏;应**显式传**上表默认值或 baseInfo 原值 |
|
|
54
|
-
| **擅自改已有报表 `groupId`** | 以参考报表/`baseInfo` 为准;「默认分组」可能是 `0` 或展示为 `-1`,勿凭记忆改写 |
|
|
55
|
-
| 更新 baseInfo 时清空已有合法默认字段 | `updateReportBase` 本就不改 `group_id`;改分组用 `removeReport` |
|
|
56
|
-
| 为「好看」改 `frontView`/`configurable`/`gridLine` 等 | 未需求点名则保持平台默认 |
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## 二、name / nameLabelId 规范(强制)
|
|
61
|
-
|
|
62
|
-
### 2.1 `name`(报表名称)
|
|
63
|
-
|
|
64
|
-
| 规则 | 说明 |
|
|
65
|
-
|------|------|
|
|
66
|
-
| 非空 | 去掉首尾空白后长度 ≥ 1 |
|
|
67
|
-
| **禁止**控制字符 | 不得含 `\r` `\n` `\t` 及其它 ISO 控制符(`\u0000-\u001F`、`\u007F`) |
|
|
68
|
-
| 禁止首尾异常空白 | 写入前 `trim()`;勿保留仅空白名 |
|
|
69
|
-
| 同名校验 | 服从平台 `checkReportName`(如 SAME_NAME) |
|
|
70
|
-
|
|
71
|
-
### 2.2 `nameLabelId`(多语言标识)
|
|
72
|
-
|
|
73
|
-
源码 `resetReportListI18nName`:
|
|
74
|
-
|
|
75
|
-
```java
|
|
76
|
-
if (StringUtils.isNotBlank(nameLabelId) && !"-1".equals(nameLabelId)) {
|
|
77
|
-
|
|
78
|
-
}
|
|
79
|
-
```
|
|
80
|
-
|
|
81
|
-
| 规则 | 说明 |
|
|
82
|
-
|------|------|
|
|
83
|
-
| 无多语言 | **必须** `"-1"`(字符串) |
|
|
84
|
-
| 有多语言 | **纯数字**雪花 ID 字符串,无空白、无 `\r\n` |
|
|
85
|
-
| **禁止** | `"-1\r\n"`、空串、`"null"`、带空格数字、任意非数字(除精确 `"-1"`) |
|
|
86
|
-
|
|
87
|
-
### 2.3 事故对照
|
|
88
|
-
|
|
89
|
-
`BBB` + `nameLabelId="-1\r\n"` → 应用报表页 `list?groupid=-1` 整页 500「报表内部错误」。
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
## 三、CLI(优先)
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
# 落库前本地校验(不访问网络)
|
|
97
|
-
e10-cli report validate base --name "资产信息统计" --name-label-id -1 --group-id 0
|
|
98
|
-
|
|
99
|
-
# 线上报表元数据巡检
|
|
100
|
-
e10-cli report verify meta <reportId> [appId]
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
校验失败 exit ≠ 0;Agent **禁止**跳过继续 save。
|
|
104
|
-
|
|
105
|
-
内部错误根因与修复全流程:`report-internal-error-guide.md`。
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
---
|
|
109
|
-
|
|
110
|
-
## 四、与其它文档
|
|
111
|
-
|
|
112
|
-
| 文档 | 关系 |
|
|
113
|
-
|------|------|
|
|
114
|
-
| `api-report-build-fast-path.md` §2.1 | 建壳命名 + groupId/name 纪律 |
|
|
115
|
-
| `e10-cli report
|
|
116
|
-
| `failure-cleanup-and-nonblocking-guide.md` | 失败空壳清理 |
|
|
117
|
-
| `report-self-check-guide.md` | 布局/父格自检(本篇只管 base 元数据) |
|
|
1
|
+
# 报表基础字段默认值与命名规范(强制)
|
|
2
|
+
|
|
3
|
+
> **权威来源**:`EdcReportDevBaseController.saveReportBaseInfo`(`@RequestParam defaultValue`)
|
|
4
|
+
> + `EdcReportDevBaseServiceImpl.buildNewReportDto` / `buildEmptySheetProp` / `resetReportListI18nName`
|
|
5
|
+
> **原则**:**对齐平台内置默认值**;禁止凭感觉改空、改哨兵值、或往 `name`/`nameLabelId` 塞特殊字符。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 一、baseInfo 内置默认值(设计器新建 API)
|
|
10
|
+
|
|
11
|
+
`POST /api/bs/edc/report/baseInfo`(`weaver-edcreportd` · `EdcReportDevBaseController`):
|
|
12
|
+
|
|
13
|
+
| 参数 | 源码 `defaultValue` / 行为 | Agent / CLI **必须** |
|
|
14
|
+
|------|---------------------------|----------------------|
|
|
15
|
+
| `groupId` | **`"0"`** | 未指定分组时传 **`0`**。会出现在页面「全部」(`list?groupid=-1` 哨兵=查全部) |
|
|
16
|
+
| `showOrder` | **`"1"`** | 未指定时传 **`1`**;勿传空 |
|
|
17
|
+
| `name` | **必填**(无 default) | 非空;见 §二 |
|
|
18
|
+
| `nameLabelId` | 可选(无 default) | **无多语言时显式传 `"-1"`**(与线上正常报表一致);勿传空串、勿省略后写成脏值 |
|
|
19
|
+
| `id` | `"0"` = 新建 | 新建用 `0`;更新用真实 reportId |
|
|
20
|
+
| `appId` | `"0"`(须改为真实应用) | **必须**真实 appId |
|
|
21
|
+
| `reportModel` | `"0"` | 无模板时保持 `0`;**模版创建**时传模板报表 ID(见 `report-create-modes-guide.md`) |
|
|
22
|
+
| `quicklyParam` | 无(省略) | **快速构建-列表式**时传 QuicklyParam **JSON 字符串**;与 `reportModel>0` 互斥(模板优先) |
|
|
23
|
+
| `systemType`(新建分支) | 服务端置 **`1`** | 普通 EB 报表勿擅自改成空/其它 |
|
|
24
|
+
|
|
25
|
+
`buildNewReportDto` 其它落库默认:
|
|
26
|
+
|
|
27
|
+
| 字段 | 默认 |
|
|
28
|
+
|------|------|
|
|
29
|
+
| `version` | `"1"` |
|
|
30
|
+
| `enable` | `1` |
|
|
31
|
+
| `configurable` | `0` |
|
|
32
|
+
| `frontView` | `0` |
|
|
33
|
+
| `enableInsight` | `0` |
|
|
34
|
+
| `deleteType` | `0` |
|
|
35
|
+
|
|
36
|
+
空 Sheet(`buildEmptySheetProp`):`gridLine=0`、`rowHeaderVisible=0`、`colHeaderVisible=0`(与「页面布局默认关闭」一致)。
|
|
37
|
+
|
|
38
|
+
### 1.1 哨兵值 ≠ 入库默认值(强制)
|
|
39
|
+
|
|
40
|
+
| 值 | 用途 | Agent 行为 |
|
|
41
|
+
|----|------|------------|
|
|
42
|
+
| **`groupid=-1`(list 查询参数)** | 「查全部报表」哨兵 | 仅查询用 |
|
|
43
|
+
| **`baseInfo.groupId=-1`** | 部分租户/应用下**默认分组展示值**(验证常见) | **原样保留**,禁止擅自改成其它 ID |
|
|
44
|
+
| **`groupId=0`(Controller 新建 defaultValue)** | 新建 API 未指定分组时的入参默认 | 新建可显式传 `0`;**不要**事后乱改已有报表分组 |
|
|
45
|
+
|
|
46
|
+
> **强制**:已有报表的 `groupId` **只认 `baseInfo` 回读**。保存 `saveReportDevInfo` 时把 `baseInfo.groupId` **原样写入 multipart**,禁止脚本硬编码 `0`/`-1`/臆造 ID。
|
|
47
|
+
> 改分组只能用户明确要求后走 `removeReport` 等换组接口。
|
|
48
|
+
|
|
49
|
+
### 1.2 禁止随便改空 / 乱设分组
|
|
50
|
+
|
|
51
|
+
| 禁止 | 说明 |
|
|
52
|
+
|------|------|
|
|
53
|
+
| 把 `groupId` / `showOrder` / `nameLabelId` 改成 `""` / `null` 指望「用默认」 | multipart 空串可能覆盖或落脏;应**显式传**上表默认值或 baseInfo 原值 |
|
|
54
|
+
| **擅自改已有报表 `groupId`** | 以参考报表/`baseInfo` 为准;「默认分组」可能是 `0` 或展示为 `-1`,勿凭记忆改写 |
|
|
55
|
+
| 更新 baseInfo 时清空已有合法默认字段 | `updateReportBase` 本就不改 `group_id`;改分组用 `removeReport` |
|
|
56
|
+
| 为「好看」改 `frontView`/`configurable`/`gridLine` 等 | 未需求点名则保持平台默认 |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 二、name / nameLabelId 规范(强制)
|
|
61
|
+
|
|
62
|
+
### 2.1 `name`(报表名称)
|
|
63
|
+
|
|
64
|
+
| 规则 | 说明 |
|
|
65
|
+
|------|------|
|
|
66
|
+
| 非空 | 去掉首尾空白后长度 ≥ 1 |
|
|
67
|
+
| **禁止**控制字符 | 不得含 `\r` `\n` `\t` 及其它 ISO 控制符(`\u0000-\u001F`、`\u007F`) |
|
|
68
|
+
| 禁止首尾异常空白 | 写入前 `trim()`;勿保留仅空白名 |
|
|
69
|
+
| 同名校验 | 服从平台 `checkReportName`(如 SAME_NAME) |
|
|
70
|
+
|
|
71
|
+
### 2.2 `nameLabelId`(多语言标识)
|
|
72
|
+
|
|
73
|
+
源码 `resetReportListI18nName`:
|
|
74
|
+
|
|
75
|
+
```java
|
|
76
|
+
if (StringUtils.isNotBlank(nameLabelId) && !"-1".equals(nameLabelId)) {
|
|
77
|
+
Long.parseLong(nameLabelId); // 脏字符 → NumberFormatException →「报表内部错误」
|
|
78
|
+
}
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
| 规则 | 说明 |
|
|
82
|
+
|------|------|
|
|
83
|
+
| 无多语言 | **必须** `"-1"`(字符串) |
|
|
84
|
+
| 有多语言 | **纯数字**雪花 ID 字符串,无空白、无 `\r\n` |
|
|
85
|
+
| **禁止** | `"-1\r\n"`、空串、`"null"`、带空格数字、任意非数字(除精确 `"-1"`) |
|
|
86
|
+
|
|
87
|
+
### 2.3 事故对照
|
|
88
|
+
|
|
89
|
+
`BBB` + `nameLabelId="-1\r\n"` → 应用报表页 `list?groupid=-1` 整页 500「报表内部错误」。
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## 三、CLI(优先)
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
# 落库前本地校验(不访问网络)
|
|
97
|
+
e10-cli report validate base --name "资产信息统计" --name-label-id -1 --group-id 0
|
|
98
|
+
|
|
99
|
+
# 线上报表元数据巡检
|
|
100
|
+
e10-cli report verify meta <reportId> [appId]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
校验失败 exit ≠ 0;Agent **禁止**跳过继续 save。
|
|
104
|
+
|
|
105
|
+
内部错误根因与修复全流程:`report-internal-error-guide.md`。
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 四、与其它文档
|
|
111
|
+
|
|
112
|
+
| 文档 | 关系 |
|
|
113
|
+
|------|------|
|
|
114
|
+
| `api-report-build-fast-path.md` §2.1 | 建壳命名 + groupId/name 纪律 |
|
|
115
|
+
| `e10-cli report-cli.md` | CLI 映射 |
|
|
116
|
+
| `failure-cleanup-and-nonblocking-guide.md` | 失败空壳清理 |
|
|
117
|
+
| `report-self-check-guide.md` | 布局/父格自检(本篇只管 base 元数据) |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# e-Builder 报表搭建实战指导手册
|
|
2
2
|
|
|
3
|
-
> **冷启动禁止通读**:见 `
|
|
3
|
+
> **冷启动禁止通读**:见 `api-report-build-fast-path.md`。仅需要界面逐步操作指导时再读。
|
|
4
4
|
> **设计器 UI 全景(开始/页面/公式 全菜单 + API 对照)**:见同目录 **`report-designer-feature-map.md`**。
|
|
5
5
|
|
|
6
6
|
## 文档定位
|
|
@@ -39,20 +39,20 @@
|
|
|
39
39
|
设计器分为三大区域:
|
|
40
40
|
|
|
41
41
|
- **左侧:数据集面板**
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
- 显示已添加的数据集(如「分组报表数据源(内置)」)
|
|
43
|
+
- 展开可看到字段列表
|
|
44
|
+
- 右键数据集可执行:自定义名称、数据预览、筛选条件、数据聚合、数据排序、替换数据集、移除
|
|
45
|
+
- 把字段拖到中间画布即可生成数据单元格
|
|
46
46
|
|
|
47
47
|
- **中间:报表设计画布**
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
- 类似 Excel 的网格区域
|
|
49
|
+
- 选中单元格后,右侧属性面板会显示该单元格的属性
|
|
50
|
+
- 顶部有「开始」「页面」「公式」三个主 Tab
|
|
51
51
|
|
|
52
52
|
- **右侧:属性面板**
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
- 「单元格」Tab:单元格类型、数据集合、字段、父格、扩展方向、显示方式、分组排序等
|
|
54
|
+
- 「事件」Tab:配置 PC 链接地址、H5 链接地址、打开方式(弹出页 / 当前页 / 执行 JS 代码)
|
|
55
|
+
- 「样式」Tab:主题模板、背景色、配色交替方式、文本样式
|
|
56
56
|
|
|
57
57
|
### 2.2 顶部菜单关键入口
|
|
58
58
|
|
|
@@ -162,22 +162,22 @@
|
|
|
162
162
|
2. 合并左侧维度列单元格,输入文字「大区合计」
|
|
163
163
|
3. 在指标列输入公式,例如 `=SUM(F5)`(F5 为该组指标字段单元格)
|
|
164
164
|
4. 选中「大区合计」文字单元格:
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
165
|
+
- 左父格 = 自定义为分组字段单元格(如 B5)
|
|
166
|
+
- 上父格 = 无
|
|
167
|
+
- 扩展方向 = 不扩展
|
|
168
168
|
5. 选中指标合计单元格:
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
- 左父格 = 自定义为分组字段单元格(如 B5)
|
|
170
|
+
- 上父格 = 无
|
|
171
|
+
- 扩展方向 = 不扩展
|
|
172
172
|
|
|
173
173
|
#### 总计行(报表最底部)
|
|
174
174
|
|
|
175
175
|
1. 在报表最下方插入一行,输入「合计」
|
|
176
176
|
2. 指标列输入公式,例如 `=SUM(F5)` 或 `=SUM(指标字段区域)`
|
|
177
177
|
3. 选中「合计」文字单元格和指标合计单元格:
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
- 左父格 = 无
|
|
179
|
+
- 上父格 = 无
|
|
180
|
+
- 扩展方向 = 不扩展
|
|
181
181
|
|
|
182
182
|
### 步骤 6:添加查询条件
|
|
183
183
|
|
|
@@ -188,8 +188,8 @@
|
|
|
188
188
|
弹窗中可配置:
|
|
189
189
|
|
|
190
190
|
- **高级搜索显示形式**:默认样式 / 展开条件
|
|
191
|
-
|
|
192
|
-
|
|
191
|
+
- 默认样式:预览页右上角显示搜索图标,点击后展开筛选条件
|
|
192
|
+
- 展开条件:预览页顶部直接展示搜索栏
|
|
193
193
|
- **启用所有条件任一条件切换**:开启后查询条件之间从「and」变成「or」
|
|
194
194
|
- **筛选下拉框无字段时不显示**:仅对筛选生效
|
|
195
195
|
- **仅在查询时获取数据**:减少初始加载
|
|
@@ -221,10 +221,10 @@
|
|
|
221
221
|
3. 默认值类型选「自定义」,默认值可填 `{thisweek}` 或留空
|
|
222
222
|
4. 显示位置选「平铺」或「下拉」
|
|
223
223
|
5. 点击「添加条件」,在下方的查询条件行中选择:
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
224
|
+
- **选择类型**:默认选 **条件字段**(仅需求明确写 SQL 时才选 SQL)
|
|
225
|
+
- 数据集 = 对应数据集合
|
|
226
|
+
- 数据集字段 = 目标字段(fieldKey:`{dataSetId}.{sourceId}.{fieldName}`)
|
|
227
|
+
- 条件 = 等于 / 区间等(与字段类型匹配)
|
|
228
228
|
6. **日期区间**:设计器「选项」默认全部勾选(全部/今天/本周/本月/…/自定义);API 写入见下文
|
|
229
229
|
7. 点击「确定」保存
|
|
230
230
|
|
|
@@ -299,23 +299,23 @@
|
|
|
299
299
|
#### 配置步骤
|
|
300
300
|
|
|
301
301
|
1. **页面 → 查询设置**
|
|
302
|
-
|
|
303
|
-
|
|
302
|
+
- 高级搜索显示形式:选择「默认样式」或「展开条件」
|
|
303
|
+
- 保存
|
|
304
304
|
2. **页面 → + 添加查询条件**
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
305
|
+
- 显示名称:签约日期
|
|
306
|
+
- 字段类型:日期区间
|
|
307
|
+
- 显示位置:平铺
|
|
308
|
+
- 条件必填:根据需要开启
|
|
309
|
+
- 点击「添加条件」
|
|
310
|
+
- 在查询条件行中:
|
|
311
|
+
- 数据集字段 = 签约日期
|
|
312
|
+
- 条件类型会自动匹配为日期区间
|
|
313
|
+
- 点击「确定」
|
|
314
314
|
3. **预览测试**
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
315
|
+
- 点击预览
|
|
316
|
+
- 若选择「默认样式」,在右上角搜索图标中打开筛选面板
|
|
317
|
+
- 若选择「展开条件」,筛选栏直接显示在顶部
|
|
318
|
+
- 选择日期区间后点击查询,确认数据被过滤
|
|
319
319
|
|
|
320
320
|
> 若用户希望默认显示「本月」或「今天」数据:默认值类型选 **自定义**,填系统参数 `{thismonth}` 或 `{date}`(今天区间写 `["{date}","{date}"]`)。详见 `query-condition-api-guide.md` §五。
|
|
321
321
|
|
|
@@ -326,13 +326,13 @@
|
|
|
326
326
|
#### 配置步骤
|
|
327
327
|
|
|
328
328
|
1. **页面 → + 添加查询条件**
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
329
|
+
- 显示名称:所属部门
|
|
330
|
+
- 字段类型:下拉框
|
|
331
|
+
- 默认值类型:常规
|
|
332
|
+
- 显示位置:平铺
|
|
333
333
|
2. 点击「添加条件」
|
|
334
|
-
|
|
335
|
-
|
|
334
|
+
- 数据集字段 = 部门字段
|
|
335
|
+
- 条件 = 等于
|
|
336
336
|
3. 点击「确定」
|
|
337
337
|
4. 预览时,下拉框会显示部门选项,选择后自动过滤
|
|
338
338
|
|
|
@@ -432,11 +432,11 @@
|
|
|
432
432
|
### 5. 添加查询条件
|
|
433
433
|
- 页面 → 查询设置 → 高级搜索显示形式:默认样式 → 保存
|
|
434
434
|
- 页面 → + 添加查询条件
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
435
|
+
- 显示名称:签约日期
|
|
436
|
+
- 字段类型:日期区间
|
|
437
|
+
- 显示位置:平铺
|
|
438
|
+
- 添加条件:数据集字段 = 签约日期
|
|
439
|
+
- 确定
|
|
440
440
|
|
|
441
441
|
### 6. 预览保存
|
|
442
442
|
- 点击右上角「预览」验证数据
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# 报表案例搭建提示语句速查(可复制粘贴)
|
|
2
|
+
|
|
3
|
+
> 用法:按需求挑一条,把 `<>` 占位符替换成实际值,整段发给 AI 即可。
|
|
4
|
+
> AI 按「识别边界」自动命中场景与通道;未命中时提示语句里点名的命令会强制路由。
|
|
5
|
+
> 各场景机制细节见对应指南(每条末尾标注)。**覆盖 8 类:卡片 / 段落 / 档案 / 钻取 / 分页分组 / 分片冻结 / 高阶交叉 / 折叠树。**
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. 卡片式报表(一条记录=一张卡片,如发票)
|
|
10
|
+
|
|
11
|
+
> 按卡片式格式搭一张报表:每条记录一张卡片,卡片内为标签/值网格(字段 A/B/C…,无对应字段的格用 Const 占位);
|
|
12
|
+
> 数据源表 `<sourceName>`(sourceId `<sid>`,appId `<appId>`);卡片纵向堆叠同页不分页;
|
|
13
|
+
> 用 `card example` 出模板改字段后 `card build`,dry-run 通过再 `--apply`,落库后回读验收。
|
|
14
|
+
> —— 通道:`e10-cli report card build`;指南 `card-report-guide.md`
|
|
15
|
+
|
|
16
|
+
## 2. 段落明细表(一条记录=一个段落块,块内多信息区)
|
|
17
|
+
|
|
18
|
+
> 按段落明细表格式搭一张报表:每条记录一个段落块,块内分「XX信息 / YY信息 / ZZ信息」三个信息区,
|
|
19
|
+
> 每区一条整行底色标题条 + 标签/值网格;数据源表 `<sourceName>`(sourceId `<sid>`,appId `<appId>`);
|
|
20
|
+
> 字段映射:区块1 用字段 A/B/C,区块2 用字段 D/E/F……;记录间空一行,同页堆叠不分页;
|
|
21
|
+
> 用 `card example paragraph` 出模板改字段后 `card build`,dry-run 通过再 `--apply`,落库后回读验收并交设计器地址。
|
|
22
|
+
> —— 通道:`e10-cli report card build --example paragraph`;指南 `card-report-guide.md` §3.1
|
|
23
|
+
|
|
24
|
+
## 3. 档案式报表(一个实体+N个一对多明细带,如个人档案)
|
|
25
|
+
|
|
26
|
+
> 按档案式报表搭一张「XX基本档案」:一个实体一份档案,纵向分区块——
|
|
27
|
+
> 「基本信息」(标签/值网格,字段 A/B/C/D…)+「教育经历」(表头:时间/性质/学历/学校/专业,一对多明细)
|
|
28
|
+
> +「工作经历」(表头:…)+「培训记录」(表头:…);
|
|
29
|
+
> 主表 sourceId `<sid0>`,各明细子表 sourceId `<sid1/sid2/…>`(appId `<appId>`);
|
|
30
|
+
> 保持 A4 自然分页;多源走 `rebuild from-blueprint`(datasets[]+datasetKey),
|
|
31
|
+
> 落库后回读验收:各带锚点独立扩展、带标题/表头行父格齐全、check-ids 无外来 datasetId。
|
|
32
|
+
> —— 通道:单源 `card build` / 多源 `rebuild from-blueprint`;指南 `dossier-report-guide.md`
|
|
33
|
+
|
|
34
|
+
## 4. 数据钻取类报表(列表+行级钻取/排序)
|
|
35
|
+
|
|
36
|
+
> 按数据钻取格式搭一张订单列表:列为 `<列清单>`,数据源 `<sid>`(appId `<appId>`);
|
|
37
|
+
> 点击「订单号」列钻取到明细报表 `<reportId>`(参数 `ddhh=SELF`),点击「客户名称」钻到 `<reportId2>`;
|
|
38
|
+
> 点击「订购日期」按升序排序;钻取参数引用只允许左侧列,「导出明细」列放最右;
|
|
39
|
+
> 用 `build spec`(columns[].link / columns[].sort)落库,落库后回读验收 pcHreflink。
|
|
40
|
+
> —— 通道:`e10-cli report build` 场景 D;指南 `drilldown-report-guide.md`;
|
|
41
|
+
> ⚠️ 能力边界:「不预览直接导出」暂无已验证 API(先以钻取列替代)
|
|
42
|
+
|
|
43
|
+
## 5. 分页分组报表(标题重复/分组编号/每页N行/条件预警)
|
|
44
|
+
|
|
45
|
+
> 按分页分组格式搭一张产品信息统计表:分组两层(类别→产品,第二层编号用系统序号),
|
|
46
|
+
> 标题行随类别动态重复;每页固定 10 行(`layout.pageRowCount:10`);
|
|
47
|
+
> 库存量小于订购量整行预警、订购金额超 1000 红字(`columns[].rule`);
|
|
48
|
+
> 数据源 `<sid>`(appId `<appId>`);用 `build spec` 落库,回读验收分页配置与父格链。
|
|
49
|
+
> —— 通道:`e10-cli report build` 场景 E + seq(场景B);指南 `paged-group-report-guide.md`;
|
|
50
|
+
> ⚠️ 验证项:页内逐页汇总、跨格整行预警
|
|
51
|
+
|
|
52
|
+
## 6. 多源分片与冻结表(左行维度+右侧多片交叉统计)
|
|
53
|
+
|
|
54
|
+
> 按多源分片与冻结格式搭一张统计大表:左侧行维度「类别+名称」两列,
|
|
55
|
+
> 右侧三片分别按「地区 / 供应商 / 雇员」交叉统计数量与金额,每片带小计,底部总计行;
|
|
56
|
+
> 数据源 `<sid1/sid2/sid3>`(appId `<appId>`);不分页(`layout.paginate:false`)、
|
|
57
|
+
> 冻结左侧 2 列和上方表头(`freezeRows:1 + freezeCols:2`)、报表居左;
|
|
58
|
+
> 多源走 `rebuild from-blueprint`,落库后回读验收:fixed=1 唯一且坐标正确、pagination=false、showLocation=1、check-ids 干净。
|
|
59
|
+
> —— 通道:`e10-cli report build` 场景 F(单源/冻结/分页)+ `rebuild from-blueprint`(多源分片);
|
|
60
|
+
> 指南 `shard-freeze-report-guide.md`
|
|
61
|
+
|
|
62
|
+
## 7. 高阶交叉表(多级行维度 × 多指标列组,如销售额等级分析)
|
|
63
|
+
|
|
64
|
+
> 按高阶交叉格式搭一张销售额等级分析:行维度三级「一级品类→二级品类→品牌」逐级缩进,
|
|
65
|
+
> 每级带小计行,底部总计;列侧多指标组「销量对比/销售额/…」(组内 2014/2015/占比/合计多列);
|
|
66
|
+
> 环比列红绿条件色(涨红/跌绿);数据源 `<sid>`(appId `<appId>`);
|
|
67
|
+
> 多级行维度+多列组走 rebuild 直构路径(crosstab guide + 本指南 §一坐标模板),
|
|
68
|
+
> 落库后回读验收父格拓扑与 Formula 存活。
|
|
69
|
+
> —— 通道:`e10-cli report build` 直构(场景 H);指南 `advanced-crosstab-tree-guide.md`
|
|
70
|
+
|
|
71
|
+
## 8. 折叠树报表(左侧树形层级可收起展开,如地区应收汇总)
|
|
72
|
+
|
|
73
|
+
> 按折叠树格式搭一张地区应收汇总:左侧「组织层级」树形列(可收起展开,`display:"tree"`),
|
|
74
|
+
> 列侧多层费用组(组内小计/已上线/未上线 → 个数/金额子列),底部合计行;
|
|
75
|
+
> 数据源 `<sid>`(自包含层级;跨表层级给 subordination 映射),appId `<appId>`;
|
|
76
|
+
> 冻结左 1 列+上方表头、居左;单源用 `build spec`、多源列组用 rebuild 直构,
|
|
77
|
+
> 落库后回读验收:树形格 displayType=Tree 且左父格 -1,-1、冻结锚点唯一、check-ids 干净。
|
|
78
|
+
> —— 通道:`e10-cli report build` `columns[].display:"tree"`(场景 I)+ rebuild 直构(多层列组);
|
|
79
|
+
> 指南 `advanced-crosstab-tree-guide.md`;⚠️ 默认展开 sheetConfig 键名 = 设计器确认项
|
|
80
|
+
|
|
81
|
+
## 9. 分栏报表四式(行分栏 / 列分栏 / 卡片分栏 / 行分栏汇总 · 场景 J)
|
|
82
|
+
|
|
83
|
+
分栏 = 渲染级配置(页面→报表展示→分栏),设计带保持单带;spec 侧经 `layout.sheetConfig` /
|
|
84
|
+
`spec.sheetConfig` 透传(**分栏键名待设计器确认回填**,验证法:设计器建分栏报表 → `getReportDevInfo`
|
|
85
|
+
→ `sheetProps[0].sheetConfig`)。四式提示语句见 `column-split-report-guide.md` §三(J-1/J-2/J-3/J-4),
|
|
86
|
+
要点:J-1/J-3 单源走 `build spec` / `card build`(卡片式可 `qrcode` 透传条码);J-2/J-4 多级结构走 rebuild 直构。
|
|
87
|
+
|
|
88
|
+
## 10. 财务统计表(同比/环比/占比/排名/累计 · 场景 K)
|
|
89
|
+
|
|
90
|
+
> 按同比环比财务统计表搭一张报表:年份/月份两级分组,销售额按月汇总;
|
|
91
|
+
> 指标列:月环比 / 年同比 / 年内占比 / 年内排名+总排名 / 年内累计+总累计;
|
|
92
|
+
> **在数据加工 SQL 里用窗口函数预计算五类指标**(LAG 环比 / SUM OVER 占比累计 / RANK OVER 排名),
|
|
93
|
+
> 报表纯绑字段(`build spec` 直出,百分比列 format:percent);
|
|
94
|
+
> 数据源 `<sid 或 SQL 视图>`(appId `<appId>`);年份格分组缩进、冻结表头;
|
|
95
|
+
> 落库后回读验收:字段绑定与格式、无公式列依赖。
|
|
96
|
+
> —— 通道:`build spec` + 数据集预计算列(**语义正解**);指南 `financial-stats-report-guide.md`;
|
|
97
|
+
> ⚠️ 报表侧 SpreadJS 相对引用(环比/同比/排名/累计)= 验证项;内置 COMB_* 组合公式捕获法见指南 §二
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 通用尾巴(任何一条都可追加)
|
|
102
|
+
|
|
103
|
+
> 落库前给我 dry-run 结果;落库后回读验收(格数/字段数/父格链/目标键值三项)并贴设计器地址;
|
|
104
|
+
> 改前先对现有报表 `getReportDevInfo` 快照留档,只动点名的 reportId。
|