以简约成就复杂
塞斯·哈尼塞克
作为HotDocs培训师,我最常遇到的情况是:当学员掌握了模板开发的基础知识(确认他们理解并能灵活运用变量、重复等功能)后,他们却向我展示这样的内容:
|
投资者 |
持有的股份 |
|
亚伯拉罕联合公司 |
150股普通股,每股15.00英镑 250股A股,每股9.50英镑 |
|
荆棘与瓶盖有限责任公司 |
25股A股,每股1.00英镑 15股C类股份,每股0.75英镑 |
|
合作曲轴 |
500股普通股,每股15.00英镑 375股A类股,每股1.00英镑 400股B类股,每股0.10英镑 |
他们陷入困境,哀叹道:“我能做基础模板开发,但不知道怎么搞……那个!”
这是普遍的体验,因为很少有人受过像程序员或工程师那样看待问题的训练。但每个人在生活的其他方面都需应对复杂性,这并无二致。无论是重建引擎、烹制三道菜的晚餐,还是开发复杂的模板,解决之道本质相同。
保持简单
处理任何大型任务的最佳方式是将其拆解为更小、更易消化的部分。让我们再次审视我们的示例:
|
投资者 |
持有的股份 |
|
亚伯拉罕联合公司 |
150股普通股,每股15.00英镑 250股A股,每股9.50英镑 |
|
荆棘与瓶盖有限责任公司 |
25股A股,每股1.00英镑 15股C类股份,每股0.75英镑 |
|
合作曲轴 |
500股普通股,每股15.00英镑 375股A类股,每股1.00英镑 400股B类股,每股0.10英镑 |
看来我们需要一份投资者名单,每位投资者名下将包含不同价格的各类股票清单。虽然涉及内容较多,但我们可以从最基础的任务开始:创建一些变量。无论后续处理什么内容,变量都是必需的,因此就从这里着手吧:
|
投资者 |
持有的股份 |
|
«投资者姓名» |
«ShareNumber»股«ShareName»股票,每股£«SharePrice» «ShareNumber»股«ShareName»股票,每股£«SharePrice» |
|
«投资者姓名» |
«ShareNumber»股«ShareName»股票,每股£«SharePrice» «ShareNumber»股«ShareName»股票,每股£«SharePrice» |
|
«投资者姓名» |
«ShareNumber»股«ShareName»股票,每股£«SharePrice» «ShareNumber»股«ShareName»股票,每股£«SharePrice» |
当然,这只是一个列表,因此我们可以删除冗余行——但目前我们暂不处理股份列表,因为我们希望保持简单,专注于投资者列表:
|
投资者 |
持有的股份 |
|
«投资者姓名» |
«ShareNumber»股«ShareName»股票,每股£«SharePrice» «ShareNumber»股«ShareName»股票,每股£«SharePrice» |
与所有列表相同,投资者将设置为重复对话框(命名为投资者)。该对话框(目前)仅包含投资者名称,因为这是列表的核心要素。现在我们的表格如下所示:
|
投资者 |
持有的股份 |
|
«REPEAT 投资者»«投资者姓名» |
«ShareNumber»股«ShareName»股票,每股£«SharePrice» «ShareNumber»股«ShareName»股票,每股£«SharePrice» |
筑巢本能
到目前为止,我们所做的只是创建一些变量并在表格中重复一行——这些都是HotDocs培训首日讲授的基础概念。现在我们可以开始分层增加复杂性了。第一层是股份列表,它同样是一个重复对话框。但这属于嵌套列表:每位投资者的股份清单和价格都各不相同。我们需要实现的是嵌套重复:
|
投资者 |
持有的股份 |
|
«REPEAT 投资者»«投资者姓名» |
«REPEAT Shares»«ShareNumber»股«ShareName»股票,每股£«SharePrice» «结束重复» |
我们的嵌套重复对话框(命名为“持股”)应包含ShareNumber、ShareName和 SharePrice变量。随后需将其添加至“投资者”对话框的内容列表中。请注意,使用嵌套重复对话框时,组件的嵌套层级必须与REPEAT字段的嵌套层级完全对应。
请注意,嵌套重复结构包含END REPEAT指令,而顶级重复结构(即"投资者")则没有。这是因为覆盖整行的REPEAT无需END REPEAT指令,但在表格单元格内使用的重复结构则需要该指令。
无极限
我们现已拥有该表格的功能版本。此项目尚可进行多项优化,例如为重复对话框添加动态标签、创建动态更新的股份类型列表以及计算总计。处理此类任务的关键在于将问题分解为最小、最易消化的部分,逐一解决。
千里之行,始于足下。
老子,《道德经》
若您希望为团队组织HotDocs模板开发培训,或想进一步了解如何在企业中运用HotDocs进行文档生成,请随时联系我们。
编者按 本文最初发表于 HotDocs.com.2024 年 6 月,Mitratech 收购了高级文档自动化平台 HotDocs。此后,我们对内容进行了更新,以纳入与我们的产品、法规变化和合规性相一致的信息。
