开发技巧分享—FileMaker 树形目录 (4/4)

菜单展开/折叠的原理

如果你学习过前三篇,应该已经可以开发出树形目录的基础结构。要让树形目录正常运行,还需要完成最后一步:即菜单的折叠/展开功能。

要开发菜单的折叠/展开脚本,先要了解折叠/展开的原理,这里我们就要用到我们第一篇学习的搜索知识了。

开发技巧分享—FileMaker 树形目录 (4/4) - FM 17 新入口

折叠菜单的原理是在当前搜索的记录里,减去当前菜单的所有级别的子级菜单,也就是限制式搜索。搜索本身并不难,但是如何确定搜索条件是关键,也就是找到某个菜单的所有子级菜单。我们通过观察菜单的索引序号,可以发现菜单的所有子级菜单都具备一个规律,即子级菜单的索引序号都是以父级菜单的索引序号为开端。这样,我们就确定了搜索条件为:当前菜单索引序号 & “#*"。

开发技巧分享—FileMaker 树形目录 (4/4) - FM 17 新入口

展开菜单的原理是在当前搜索的记录里,加上当前菜单的下一级菜单,即扩展式搜索。这里要注意,展开菜单不像折叠菜单那样针对所有子集菜单,展开菜单只展开当前菜单的下一级菜单。所以,这里的搜索条件是搜索比当前菜单索引序号多 2 位的记录,即:当前菜单索引序号 & “##"。

开发技巧分享—FileMaker 树形目录 (4/4) - FM 17 新入口

在折叠/展开菜单脚本中,除了折叠和展开的部分,还需要刷新剩余记录的索引序号列表和转到当前菜单行。这部分脚本,大家可以自己查看案例脚本。

开发技巧分享—FileMaker 树形目录 (4/4) - FM 17 新入口

我们在上一篇的案例添加上折叠/展开脚本之后,案例菜单就可以正常运行了。

FileMaker 17 新入口制作树形目录

在 FileMaker 16 之前,我们使用列表模式来开发树形目录还比较局限。但是,在最近发布的 FileMaker 17 中,入口行工具得到更新,可以使用与当前布局相同的表摹本作为数据来源。所以,我们就能将我们之前学习的树形目录,套用到入口中了。

开发技巧分享—FileMaker 树形目录 (4/4) - FM 17 新入口

套用的方法非常简单,我们只需将原来的列表模式改为表单模式。然后,添加新的入口行工具,并在“显示以下来源的记录”处选择当前表。

之后,将我们原来开发的树形目录按钮和菜单名称直接搬到入口行中就可以了。迁移之后,所有的按钮或者组件无需修改,就能正常运行。

开发技巧分享—FileMaker 树形目录 (4/4) - FM 17 新入口

通过 4 篇文章,我们将制作树形目录的基本原理和方法全部分享给大家。但是,这并不是结束。通过这些基本原理和方法,我们可以开发出更加丰富多元的树形目录和类树形目录应用。希望大家以此为起点,开发出更加友好、现代的 FileMaker 系统。


分享到:


相關文章: