以简约成就复杂

以简约成就复杂

塞斯·哈尼塞克

作为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»

«结束重复»

我们的嵌套重复对话框(命名为“持股”)应包含ShareNumberShareName和 SharePrice变量。随后需将其添加至“投资者”对话框的内容列表中。请注意,使用嵌套重复对话框时,组件的嵌套层级必须与REPEAT字段的嵌套层级完全对应。

请注意,嵌套重复结构包含END REPEAT指令,而顶级重复结构(即"投资者")则没有。这是因为覆盖整行的REPEAT无需END REPEAT指令,但在表格单元格内使用的重复结构则需要该指令。

无极限

我们现已拥有该表格的功能版本。此项目尚可进行多项优化,例如为重复对话框添加动态标签、创建动态更新的股份类型列表以及计算总计。处理此类任务的关键在于将问题分解为最小、最易消化的部分,逐一解决。

千里之行,始于足下。

老子,《道德经》

若您希望为团队组织HotDocs模板开发培训,或想进一步了解如何在企业中运用HotDocs进行文档生成,请随时联系我们


编者按 本文最初发表于 HotDocs.com.2024 年 6 月,Mitratech 收购了高级文档自动化平台 HotDocs。此后,我们对内容进行了更新,以纳入与我们的产品、法规变化和合规性相一致的信息。