@rezti/dsh-rez-suite 0.1.49 → 0.1.51
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/CHANGELOG.md +13 -2
- package/README.md +3 -3
- package/README.zh.md +2 -2
- package/cordis.patch.yml +1 -1
- package/lib/client.d.ts +31 -3
- package/lib/client.js +343 -7
- package/lib/index.js +244 -15
- package/lib/style.css +7 -0
- package/package.json +12 -11
- package/src/boss/mount.ts +4 -3
- package/src/boss/register.ts +1 -1
- package/src/boss/seed.ts +34 -0
- package/src/changelog.ts +48 -0
- package/src/channel-board.ts +55 -0
- package/src/client/locales.ts +62 -6
- package/src/client/panel/BoardTab.tsx +136 -0
- package/src/client/panel/ConfigTab.tsx +2 -2
- package/src/client/panel/StatusTab.tsx +31 -0
- package/src/client/panel/panel.module.css +7 -0
- package/src/client/settings-card.tsx +4 -1
- package/src/index.ts +3 -2
- package/src/protocol.ts +14 -0
- package/src/routes.ts +7 -1
- package/src/tools.ts +49 -6
- package/src/wecom-cli.ts +125 -0
- package/templates/boss/ops/AGENTS.md +2 -0
- package/templates/shared/wecom-cli.SOURCE.md +9 -0
- package/templates/shared/wecom-office/SKILL.md +32 -0
- package/templates/shared/wecomcli-calendar/SKILL.md +303 -0
- package/templates/shared/wecomcli-calendar/references/calendar-agenda.md +224 -0
- package/templates/shared/wecomcli-calendar/references/calendar-cancel.md +108 -0
- package/templates/shared/wecomcli-calendar/references/calendar-create.md +238 -0
- package/templates/shared/wecomcli-calendar/references/calendar-freebusy.md +207 -0
- package/templates/shared/wecomcli-calendar/references/calendar-meeting-room.md +170 -0
- package/templates/shared/wecomcli-calendar/references/calendar-search.md +206 -0
- package/templates/shared/wecomcli-calendar/references/calendar-update.md +272 -0
- package/templates/shared/wecomcli-contact/SKILL.md +58 -0
- package/templates/shared/wecomcli-disk/SKILL.md +389 -0
- package/templates/shared/wecomcli-doc/SKILL.md +137 -0
- package/templates/shared/wecomcli-doc/references/doc-contents-append.md +20 -0
- package/templates/shared/wecomcli-doc/references/doc-contents-overwrite.md +27 -0
- package/templates/shared/wecomcli-doc/references/doc-create.md +161 -0
- package/templates/shared/wecomcli-doc/scripts/build_docx.py +1375 -0
- package/templates/shared/wecomcli-doc-manage/SKILL.md +132 -0
- package/templates/shared/wecomcli-doc-manage/references/doc-members-update.md +24 -0
- package/templates/shared/wecomcli-doc-manage/references/doc-names-update.md +20 -0
- package/templates/shared/wecomcli-doc-manage/references/doc-rules-update.md +22 -0
- package/templates/shared/wecomcli-email/SKILL.md +218 -0
- package/templates/shared/wecomcli-email/references/forward-mail.md +131 -0
- package/templates/shared/wecomcli-email/references/get-mail.md +166 -0
- package/templates/shared/wecomcli-email/references/reply-mail.md +138 -0
- package/templates/shared/wecomcli-email/references/search-mail.md +111 -0
- package/templates/shared/wecomcli-email/references/security.md +53 -0
- package/templates/shared/wecomcli-email/references/send-mail.md +186 -0
- package/templates/shared/wecomcli-email/references/send-schedule.md +83 -0
- package/templates/shared/wecomcli-media/SKILL.md +98 -0
- package/templates/shared/wecomcli-meeting/SKILL.md +373 -0
- package/templates/shared/wecomcli-meeting/references/meeting-cancel.md +113 -0
- package/templates/shared/wecomcli-meeting/references/meeting-create.md +167 -0
- package/templates/shared/wecomcli-meeting/references/meeting-list.md +226 -0
- package/templates/shared/wecomcli-meeting/references/meeting-original-get.md +98 -0
- package/templates/shared/wecomcli-meeting/references/meeting-search.md +173 -0
- package/templates/shared/wecomcli-meeting/references/meeting-update.md +217 -0
- package/templates/shared/wecomcli-message/SKILL.md +200 -0
- package/templates/shared/wecomcli-shared/SKILL.md +73 -0
- package/templates/shared/wecomcli-sheet/SKILL.md +172 -0
- package/templates/shared/wecomcli-sheet/references/sheet-contents-update.md +47 -0
- package/templates/shared/wecomcli-sheet/references/sheet-ranges-get.md +45 -0
- package/templates/shared/wecomcli-sheet/references/sheet-rows-append.md +45 -0
- package/templates/shared/wecomcli-sheet/references/sheet-subsheets-add.md +26 -0
- package/templates/shared/wecomcli-sheet/references/sheet-subsheets-delete.md +20 -0
- package/templates/shared/wecomcli-smartpage/SKILL.md +170 -0
- package/templates/shared/wecomcli-smartpage/references/data-driven-pages.md +50 -0
- package/templates/shared/wecomcli-smartpage/references/formula/arraylist.md +369 -0
- package/templates/shared/wecomcli-smartpage/references/formula/datetime.md +283 -0
- package/templates/shared/wecomcli-smartpage/references/formula/logic.md +247 -0
- package/templates/shared/wecomcli-smartpage/references/formula/math.md +362 -0
- package/templates/shared/wecomcli-smartpage/references/formula/operators.md +246 -0
- package/templates/shared/wecomcli-smartpage/references/formula/pageblock.md +76 -0
- package/templates/shared/wecomcli-smartpage/references/formula/templates.md +410 -0
- package/templates/shared/wecomcli-smartpage/references/formula/text.md +377 -0
- package/templates/shared/wecomcli-smartpage/references/formula/user.md +22 -0
- package/templates/shared/wecomcli-smartpage/references/formula-reference.md +192 -0
- package/templates/shared/wecomcli-smartpage/references/mdx-syntax.md +739 -0
- package/templates/shared/wecomcli-smartpage/references/smartpage-edit.md +506 -0
- package/templates/shared/wecomcli-smartsheet/SKILL.md +154 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/README.md +53 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/ai_efficiency.md +709 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/connect_to_app.md +380 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/financial_accounting.md +369 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/hr_and_administration.md +475 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/ledger_records.md +156 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/manufacturing.md +395 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/marketing.md +186 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/office_essentials.md +299 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/personal_efficiency.md +70 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/procurement_logistics.md +325 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/project_management.md +564 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/rd_process_customer.md +222 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/rd_process_ops.md +105 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/rd_process_project.md +109 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/rd_process_research.md +92 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/sales_and_operations.md +446 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/store_management.md +431 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/team_tasks.md +274 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/wechat_customer.md +384 -0
- package/templates/shared/wecomcli-smartsheet/assets/templates/work_report.md +100 -0
- package/templates/shared/wecomcli-smartsheet/references/common.md +143 -0
- package/templates/shared/wecomcli-smartsheet/references/smart-sheet-chart-types.md +95 -0
- package/templates/shared/wecomcli-smartsheet/references/smart-sheet-edit.md +589 -0
- package/templates/shared/wecomcli-smartsheet/references/smart-sheet-field-types.md +438 -0
- package/templates/shared/wecomcli-smartsheet/references/smart-sheet-formula.md +845 -0
- package/templates/shared/wecomcli-smartsheet/references/smart-sheet-read.md +391 -0
- package/templates/shared/wecomcli-smartsheet/references/smart-sheet-record-values.md +201 -0
- package/templates/shared/wecomcli-smartsheet/references/smart-sheet-view-types.md +356 -0
- package/templates/shared/wecomcli-smartsheet/references/smart-sheet-webhook-examples.md +176 -0
- package/templates/shared/wecomcli-smartsheet/references/smart-sheet-webhook.md +169 -0
- package/templates/shared/wecomcli-todo/SKILL.md +76 -0
- package/templates/shared/wecomcli-todo/references/todo-create.md +137 -0
- package/templates/shared/wecomcli-todo/references/todo-delete.md +63 -0
- package/templates/shared/wecomcli-todo/references/todo-finish.md +72 -0
- package/templates/shared/wecomcli-todo/references/todo-get.md +66 -0
- package/templates/shared/wecomcli-todo/references/todo-list.md +133 -0
- package/templates/shared/wecomcli-todo/references/todo-update.md +112 -0
- package/templates/staff/design/AGENTS.md +2 -1
- package/templates/staff/ecommerce/.agents/skills/ops-ecommerce/SKILL.md +6 -0
- package/templates/staff/ecommerce/AGENTS.md +49 -0
- package/templates/staff/ecommerce/BOOTSTRAP.md +23 -0
- package/templates/staff/ecommerce/IDENTITY.md +8 -0
- package/templates/staff/ecommerce/MEMORY.md +9 -0
- package/templates/staff/ecommerce/PRIORITIES.md +3 -0
- package/templates/staff/ecommerce/SOUL.md +5 -0
- package/templates/staff/ecommerce/USER.md +8 -0
- package/templates/staff/hr/.agents/skills/staff-onboard-keys/SKILL.md +3 -3
- package/templates/staff/publish/.agents/skills/ops-publish/SKILL.md +6 -0
- package/templates/staff/publish/AGENTS.md +59 -0
- package/templates/staff/publish/BOOTSTRAP.md +23 -0
- package/templates/staff/publish/IDENTITY.md +8 -0
- package/templates/staff/publish/MEMORY.md +9 -0
- package/templates/staff/publish/PRIORITIES.md +3 -0
- package/templates/staff/publish/SOUL.md +6 -0
- package/templates/staff/publish/USER.md +8 -0
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
# 实用公式模板(本章节提供开箱即用的公式模板,推荐载入)
|
|
2
|
+
|
|
3
|
+
> 实用公式模板涵盖9大推荐功能(排名、环比增长、重复值标记、进度跟踪、日期提取、工龄计算、逾期判断)、2个销售分析模板(累计营业额)、2个文本处理模板(人员并集/补集)、14+个其他实用功能(地址提取、邮箱提取、数字大写、跳转链接、人员列匹配等)。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
#### 模板变量替换规则
|
|
8
|
+
|
|
9
|
+
- **特殊变量**:`[当前表]` 表示当前数据表,也需要替换成 `[表名]` 格式
|
|
10
|
+
|
|
11
|
+
### 推荐模板
|
|
12
|
+
|
|
13
|
+
#### 1. 计算排名(连续排名)
|
|
14
|
+
|
|
15
|
+
**功能描述**:从大到小计算数值字段的排名。
|
|
16
|
+
|
|
17
|
+
**使用场景**:为销售额、分数等数值字段计算排名。
|
|
18
|
+
|
|
19
|
+
**公式表达式**:
|
|
20
|
+
|
|
21
|
+
// 数据表场景示例
|
|
22
|
+
IF([销售表.销售额].ISBLANK(), "", [销售表].FILTER([Each].[销售额] >= [销售表.销售额]).[销售额].UNIQUE().COUNTA())
|
|
23
|
+
|
|
24
|
+
// 或页面控件场景示例
|
|
25
|
+
IF([销售页.销售额].ISBLANK(), "", [销售表].FILTER([Each].[销售额] >= [销售页.销售额]).[销售额].UNIQUE().COUNTA())
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
#### 2. 环比增长率
|
|
31
|
+
|
|
32
|
+
**功能描述**:计算环比增长率 = 当前周期的数值 / 上一周期的数值 - 1
|
|
33
|
+
|
|
34
|
+
**使用场景**:分析月度、季度销售增长情况。
|
|
35
|
+
|
|
36
|
+
**公式表达式**:
|
|
37
|
+
|
|
38
|
+
// 数据表场景示例
|
|
39
|
+
IF(OR([销售表.月份].ISBLANK(), [销售表.月份] = [销售表.月份].MIN()), "", [销售表].FILTER([Each].[月份] = [销售表.月份]).[销售额] / [销售表].FILTER([Each].[月份] = ([销售表.月份] - 1)).[销售额] - 1)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
#### 3. 标记重复值
|
|
45
|
+
|
|
46
|
+
**功能描述**:整列重复的内容标记"❗️重复"。
|
|
47
|
+
|
|
48
|
+
**使用场景**:检测产品名称、订单号等字段的重复值。
|
|
49
|
+
|
|
50
|
+
**公式表达式**:
|
|
51
|
+
|
|
52
|
+
// 数据表场景示例
|
|
53
|
+
IF([产品表].FILTER([Each].[产品名称] = [其他表.产品名称]).[产品名称].COUNTA() > 1, "❗️重复", "")
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
#### 4. 进度跟踪
|
|
59
|
+
|
|
60
|
+
**功能描述**:根据项目的计划完成时间和实际完成时间标记项目状态。
|
|
61
|
+
|
|
62
|
+
**使用场景**:项目管理、任务跟踪。
|
|
63
|
+
|
|
64
|
+
**公式表达式**:
|
|
65
|
+
|
|
66
|
+
// 数据表场景示例
|
|
67
|
+
IFS(
|
|
68
|
+
AND([项目表.计划完成日期] = "", [项目表.实际完成日期] = ""), "",
|
|
69
|
+
AND([项目表.计划完成日期] = "", [项目表.实际完成日期] < TODAY()), "❗️未完成",
|
|
70
|
+
AND([项目表.计划完成日期] != "", [项目表.实际完成日期] != "", [项目表.实际完成日期] <= [项目表.计划完成日期]), "✅完成",
|
|
71
|
+
AND([项目表.计划完成日期] != "", [项目表.实际完成日期] != "", [项目表.实际完成日期] > [项目表.计划完成日期]), "🚨延期",
|
|
72
|
+
AND([项目表.实际完成日期] = "", [项目表.计划完成日期] != ""), "❗️未完成"
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
#### 5. 提取年月
|
|
79
|
+
|
|
80
|
+
**功能描述**:从日期中提取年月信息。
|
|
81
|
+
|
|
82
|
+
**使用场景**:将 `2026年3月18日` 转换为 `2026年3月`。
|
|
83
|
+
|
|
84
|
+
**公式表达式**:
|
|
85
|
+
|
|
86
|
+
// 数据表场景示例
|
|
87
|
+
IF([订单表.订单日期].ISBLANK(), "", TEXT([订单表.订单日期], "yyyy年mm月"))
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
---
|
|
91
|
+
|
|
92
|
+
#### 6. 提取星期几
|
|
93
|
+
|
|
94
|
+
**功能描述**:从日期中提取星期信息。
|
|
95
|
+
|
|
96
|
+
**使用场景**:将 `2026年3月18日` 转换为 `星期三`。
|
|
97
|
+
|
|
98
|
+
**公式表达式**:
|
|
99
|
+
|
|
100
|
+
// 数据表场景示例
|
|
101
|
+
IF([订单表.订单日期].ISBLANK(), "", TEXT([订单表.订单日期], "dddd"))
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
---
|
|
105
|
+
|
|
106
|
+
#### 7. 月度第几周
|
|
107
|
+
|
|
108
|
+
**功能描述**:计算日期在当月是第几周。
|
|
109
|
+
|
|
110
|
+
**使用场景**:将 `2026年3月18日` 转换为 `3月第4周`。
|
|
111
|
+
|
|
112
|
+
**公式表达式**:
|
|
113
|
+
|
|
114
|
+
// 数据表场景示例
|
|
115
|
+
IF([订单表.订单日期] = "", "", CONCAT(MONTH([订单表.订单日期]).TEXT("00"), "月", "第", (WEEKNUM([订单表.订单日期], 2) - WEEKNUM(DATE(YEAR([订单表.订单日期]), MONTH([订单表.订单日期]), 1), 2) + 1).TEXT("00"), "周"))
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
#### 8. 计算工龄
|
|
121
|
+
|
|
122
|
+
**功能描述**:根据入职日期计算工龄天数。
|
|
123
|
+
|
|
124
|
+
**使用场景**:将 `2026年1月7日` 转换为 `n天`。
|
|
125
|
+
|
|
126
|
+
**公式表达式**:
|
|
127
|
+
|
|
128
|
+
// 数据表场景示例
|
|
129
|
+
IF(OR([员工表.入职日期].ISBLANK(), [员工表.入职日期] > TODAY()), "", (TODAY() - [员工表.入职日期]) & "天")
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
#### 9. 是否逾期
|
|
135
|
+
|
|
136
|
+
**功能描述**:根据预计完成时间判断任务是否逾期。
|
|
137
|
+
|
|
138
|
+
**使用场景**:任务管理,将 `2026年5月6日` 标记为 `逾期`。
|
|
139
|
+
|
|
140
|
+
**公式表达式**:
|
|
141
|
+
|
|
142
|
+
// 数据表场景示例
|
|
143
|
+
IF([任务表.完成日期].ISBLANK(), "", IF([任务表.完成日期] < TODAY(), "未逾期", "逾期"))
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
### 销售分析模板
|
|
149
|
+
|
|
150
|
+
#### 1. 逐日累计营业额
|
|
151
|
+
|
|
152
|
+
**功能描述**:计算从第一天到当前日期的累计营业额。
|
|
153
|
+
|
|
154
|
+
**使用场景**:销售数据分析,追踪累计业绩。
|
|
155
|
+
|
|
156
|
+
**公式表达式**:
|
|
157
|
+
|
|
158
|
+
// 数据表场景示例
|
|
159
|
+
[销售表].FILTER([Each].[销售日期] <= [销售表.销售日期]).[营业额].LISTCOMBINE().SUM()
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
#### 2. 当月累计营业额
|
|
165
|
+
|
|
166
|
+
**功能描述**:计算当月截止到当前日期的累计营业额。
|
|
167
|
+
|
|
168
|
+
**使用场景**:月度销售数据分析。
|
|
169
|
+
|
|
170
|
+
**公式表达式**:
|
|
171
|
+
|
|
172
|
+
// 数据表场景示例
|
|
173
|
+
[销售表].FILTER([Each].[销售日期].MONTH() = [销售表.销售日期].MONTH()).FILTER([Each].[销售日期] <= [销售表.销售日期]).[营业额].LISTCOMBINE().SUM()
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
### 文本处理模板
|
|
179
|
+
|
|
180
|
+
#### 1. 人员取并集
|
|
181
|
+
|
|
182
|
+
**功能描述**:取两个人员列的并集(去重)。
|
|
183
|
+
|
|
184
|
+
**使用场景**:合并项目成员和负责人列表,如 "张三,李四" 和 "张三,王五" 得到 "张三,李四,王五"。
|
|
185
|
+
|
|
186
|
+
**公式表达式**:
|
|
187
|
+
|
|
188
|
+
// 数据表场景示例
|
|
189
|
+
LIST([项目表.项目成员], [项目表.项目负责人]).LISTCOMBINE().UNIQUE()
|
|
190
|
+
|
|
191
|
+
// 或页面控件场景示例
|
|
192
|
+
LIST([项目页.项目成员], [项目页.项目负责人]).LISTCOMBINE().UNIQUE()
|
|
193
|
+
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
#### 2. 人员取补集
|
|
198
|
+
|
|
199
|
+
**功能描述**:取第一个字段相对第二个字段的补集。
|
|
200
|
+
|
|
201
|
+
**使用场景**:找出只在第一个列表中的人员,如 "张三,李四" 和 "张三,王五" 得到 "李四"。
|
|
202
|
+
|
|
203
|
+
**公式表达式**:
|
|
204
|
+
|
|
205
|
+
// 数据表场景示例
|
|
206
|
+
[项目表.项目成员].FILTER([Each].CONTAINS([项目表.项目负责人]).NOT())
|
|
207
|
+
|
|
208
|
+
// 或页面控件场景示例
|
|
209
|
+
[项目页.项目成员].FILTER([Each].CONTAINS([项目页.项目负责人]).NOT())
|
|
210
|
+
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
### 其他实用模板
|
|
215
|
+
|
|
216
|
+
#### 1. 随机数生成
|
|
217
|
+
|
|
218
|
+
**功能描述**:生成指定范围内的随机数(保留2位小数)。
|
|
219
|
+
|
|
220
|
+
**使用场景**:生成测试数据、随机抽样。
|
|
221
|
+
|
|
222
|
+
**公式表达式**:
|
|
223
|
+
|
|
224
|
+
// 数据表场景示例(假设有一个"范围"字段存储最大值)
|
|
225
|
+
(RAND() * [配置表.范围]).ROUND(2)
|
|
226
|
+
|
|
227
|
+
// 或直接使用固定值
|
|
228
|
+
(RAND() * 100).ROUND(2)
|
|
229
|
+
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
#### 2. 地址提取 - 省份
|
|
234
|
+
|
|
235
|
+
**功能描述**:从地理位置字段中提取省份信息。
|
|
236
|
+
|
|
237
|
+
**使用场景**:将 "广州塔,广东省广州市海珠区阅江西路222号" 提取为 "广东省"。
|
|
238
|
+
|
|
239
|
+
**公式表达式**:
|
|
240
|
+
|
|
241
|
+
// 数据表场景示例
|
|
242
|
+
IF([客户表.客户地址].ISBLANK(), "", [客户表.客户地址].[省])
|
|
243
|
+
|
|
244
|
+
// 或页面控件场景示例
|
|
245
|
+
IF([客户页.客户地址].ISBLANK(), "", [客户页.客户地址].[省])
|
|
246
|
+
|
|
247
|
+
|
|
248
|
+
---
|
|
249
|
+
|
|
250
|
+
#### 3. 地址提取 - 市
|
|
251
|
+
|
|
252
|
+
**功能描述**:从地理位置字段中提取城市信息。
|
|
253
|
+
|
|
254
|
+
**公式表达式**:
|
|
255
|
+
|
|
256
|
+
// 数据表场景示例
|
|
257
|
+
IF([客户表.客户地址].ISBLANK(), "", [客户表.客户地址].[市])
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
#### 4. 地址提取 - 区
|
|
263
|
+
|
|
264
|
+
**功能描述**:从地理位置字段中提取区域信息。
|
|
265
|
+
|
|
266
|
+
**公式表达式**:
|
|
267
|
+
|
|
268
|
+
// 数据表场景示例
|
|
269
|
+
IF([客户表.客户地址].ISBLANK(), "", [客户表.客户地址].[区])
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
#### 5. 地址提取 - 街道
|
|
275
|
+
|
|
276
|
+
**功能描述**:从地理位置字段中提取街道信息。
|
|
277
|
+
|
|
278
|
+
**公式表达式**:
|
|
279
|
+
|
|
280
|
+
// 数据表场景示例
|
|
281
|
+
IF([客户表.客户地址].ISBLANK(), "", [客户表.客户地址].[街道])
|
|
282
|
+
|
|
283
|
+
|
|
284
|
+
---
|
|
285
|
+
|
|
286
|
+
#### 6. 地址提取 - 经纬度
|
|
287
|
+
|
|
288
|
+
**功能描述**:从地理位置字段中提取经纬度坐标。
|
|
289
|
+
|
|
290
|
+
**公式表达式**:
|
|
291
|
+
|
|
292
|
+
// 数据表场景示例
|
|
293
|
+
IF([客户表.客户地址].ISBLANK(), "", [客户表.客户地址].[经纬度])
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
#### 7. 提取邮箱账号
|
|
299
|
+
|
|
300
|
+
**功能描述**:从邮箱地址中提取@符号前的账号部分。
|
|
301
|
+
|
|
302
|
+
**使用场景**:将 `zhangsan@qq.com` 提取为 `zhangsan`。
|
|
303
|
+
|
|
304
|
+
**公式表达式**:
|
|
305
|
+
|
|
306
|
+
// 数据表场景示例
|
|
307
|
+
IF([用户表.邮箱].ISBLANK(), "", MID([用户表.邮箱], 1, FIND("@", [用户表.邮箱]) - 1))
|
|
308
|
+
|
|
309
|
+
// 或页面控件场景示例
|
|
310
|
+
IF([用户页.邮箱].ISBLANK(), "", MID([用户页.邮箱], 1, FIND("@", [用户页.邮箱]) - 1))
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
---
|
|
314
|
+
|
|
315
|
+
#### 8. 提取邮箱域名
|
|
316
|
+
|
|
317
|
+
**功能描述**:从邮箱地址中提取@符号后的域名部分。
|
|
318
|
+
|
|
319
|
+
**使用场景**:将 `zhangsan@qq.com` 提取为 `qq.com`。
|
|
320
|
+
|
|
321
|
+
**公式表达式**:
|
|
322
|
+
// 数据表场景示例
|
|
323
|
+
IF([用户表.邮箱].ISBLANK(), "", MID([用户表.邮箱], FIND("@", [用户表.邮箱], 1) + 1, LEN([用户表.邮箱]) - FIND("@", [用户表.邮箱], 1)))
|
|
324
|
+
|
|
325
|
+
// 或页面控件场景示例
|
|
326
|
+
IF([用户页.邮箱].ISBLANK(), "", MID([用户页.邮箱], FIND("@", [用户页.邮箱], 1) + 1, LEN([用户页.邮箱]) - FIND("@", [用户页.邮箱], 1)))
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
#### 9. 数字转中文大写
|
|
331
|
+
|
|
332
|
+
**功能描述**:将数字转换为中文大写形式。
|
|
333
|
+
|
|
334
|
+
**使用场景**:财务报表、票据打印,将 `1000` 转换为 `壹仟`。
|
|
335
|
+
|
|
336
|
+
**公式表达式**:
|
|
337
|
+
|
|
338
|
+
// 数据表场景示例
|
|
339
|
+
IF([财务表.金额].ISBLANK(), "", TEXT([财务表.金额], "[DBNum2][$-804]General"))
|
|
340
|
+
|
|
341
|
+
// 或页面控件场景示例
|
|
342
|
+
IF([财务页.金额].ISBLANK(), "", TEXT([财务页.金额], "[DBNum2][$-804]General"))
|
|
343
|
+
|
|
344
|
+
#### 10. 统计月份的数量
|
|
345
|
+
|
|
346
|
+
[项目主表].FILTER(AND(YEAR([Each].[开始日期]) = LEFT([页面1.统计月份],4), MONTH([Each].[开始日期]) = RIGHT([页面1.统计月份],2))).[项目编号].COUNTA()
|
|
347
|
+
|
|
348
|
+
> 说明:示例中的 `[页面1.统计月份]` 是页面控件引用(用户在页面上输入的"YYYYMM"字符串);若改为公式字段所在表的字段,写作 `[Each].[统计月份]`,禁止使用裸字段 `[统计月份]`。
|
|
349
|
+
|
|
350
|
+
#### 11. 按钮跳转外部链接
|
|
351
|
+
|
|
352
|
+
// 跳转至百度链接
|
|
353
|
+
OPENLINK("https://baidu.com")
|
|
354
|
+
|
|
355
|
+
// 若你知道当前文档的 doc.weixin.qq.com 链接,需要跳转到其他页面,修改 p=<page_id> 参数为目标 page_id 即可
|
|
356
|
+
// 假设当前页面为:https://doc.weixin.qq.com/smartpage/<docid>?p=<current_page_id>,或者末尾没有 p=<page_id>
|
|
357
|
+
// 你需要跳转到另一个页面,page_id 为 <new_page_id>,则写为以下 URL 即可
|
|
358
|
+
OPENLINK("https://doc.weixin.qq.com/smartpage/<docid>?p=<new_page_id>")
|
|
359
|
+
---
|
|
360
|
+
|
|
361
|
+
#### 12. 计算下个周六,以日期显示
|
|
362
|
+
// 计算下个周六
|
|
363
|
+
DATE(YEAR(TODAY()), MONTH(TODAY()), DAY(TODAY()) + (6 - WEEKDAY(TODAY(), 2)))
|
|
364
|
+
|
|
365
|
+
// 计算下个周天
|
|
366
|
+
DATE(YEAR(TODAY()), MONTH(TODAY()), DAY(TODAY()) + (7 - WEEKDAY(TODAY(), 2)))
|
|
367
|
+
|
|
368
|
+
#### 13. 显示用户信息
|
|
369
|
+
// 当前用户的姓名
|
|
370
|
+
USER()
|
|
371
|
+
|
|
372
|
+
// 当前用户的头像
|
|
373
|
+
USER().[头像]
|
|
374
|
+
|
|
375
|
+
// 当前用户的企业名称
|
|
376
|
+
USER().[企业名称]
|
|
377
|
+
|
|
378
|
+
#### 14. 修改数据表中的记录
|
|
379
|
+
|
|
380
|
+
MODIFYRECORDS(目标记录集, 字段1, 值1, [字段2, 值2...])
|
|
381
|
+
- 目标记录集:支持指定单条记录(如 [表].FIRST()),也**完全支持**通过 FILTER 函数动态查询出的多条记录集合(如 [表].FILTER(条件))。
|
|
382
|
+
配合条件语句等可以实现很复杂实用的数据表记录修改/新增功能。
|
|
383
|
+
|
|
384
|
+
#### 15. 通过输入框匹配人员,写入记录到数据表
|
|
385
|
+
|
|
386
|
+
**功能描述**:将人员列中的人员添加到数据表中。
|
|
387
|
+
|
|
388
|
+
// 数据表场景示例
|
|
389
|
+
ADDRECORD([投票表], [投票表.提名人员], [人员表.人员].FILTER([Each].CONTAINTEXT([页面1.输入框])).FIRST(), [投票表.投票人], USER())
|
|
390
|
+
|
|
391
|
+
## 使用模板前必读
|
|
392
|
+
|
|
393
|
+
所有模板中的公式遵循以下规范:
|
|
394
|
+
|
|
395
|
+
1. **[Each] 规范**:
|
|
396
|
+
- 在 FILTER 中看到字段引用,前面都有 `[Each].`
|
|
397
|
+
- 例如:`[表名].FILTER([Each].[字段] = 值)`
|
|
398
|
+
|
|
399
|
+
2. **逻辑运算规范**:
|
|
400
|
+
- 与运算使用 `AND(条件1, 条件2)`,而不是 `&&`
|
|
401
|
+
- 或运算使用 `OR(条件1, 条件2)`,而不是 `||`
|
|
402
|
+
- 非运算使用 `NOT(条件)`,而不是 `!`
|
|
403
|
+
|
|
404
|
+
3. **引用格式规范**:
|
|
405
|
+
- 数据表字段:`[表名.字段名]`
|
|
406
|
+
- 页面控件:`[页面名.控件名]`
|
|
407
|
+
- 在公式字段中引用当前记录:`[字段名]`
|
|
408
|
+
- 在 FILTER 中引用:`[Each].[字段名]`
|
|
409
|
+
|
|
410
|
+
模板变量替换时请严格保持这些格式。
|