1

您如何在 FileMaker 上下文中定义模块化脚本?我还没有故意提供我的定义。我想知道你的想法。谢谢!

4

4 回答 4

1

FileMaker 中的模块化脚本体现了面向对象编程的精神。即,脚本应该建模为具有狭窄焦点的可互操作功能对象/模块的集合。在 FileMaker 中,这些模块应该支持通过参数传递的值,而不是从当前上下文派生。脚本模块应该返回结果(例如,成功、失败、取消等)以及调用脚本中可能需要的值。较大的例程应该依赖许多较小的模块来执行任务,使您能够轻松地查明故障,并允许模块被重用于许多任务。

于 2010-01-23T19:21:44.690 回答
1

模块化脚本是执行有用功能的脚本,在该脚本之外没有外部依赖项。这与我将称为“一次性”脚本的内容形成对比,后者需要很少或不需要参数,但具有特定于正在使用的文件的依赖关系。

理想的模块化脚本采用零输入,执行一些有用的功能,并且不需要处理其结果。这方面的一个示例是调整当前窗口大小以使当前窗口在屏幕上居中的脚本。因为没有 I/O 连接,并且在脚本本身之外没有任何需要更改的内容,所以使用此脚本是免费的。

更实际的示例将需要输入参数和输出结果。但是,请记住,随着参数传递的数量和复杂性的增加,模块化的好处会减少。有一个临界点,“一次性”的简单性,需要很少或不需要参数的非模块化脚本是更好的选择。

于 2010-01-27T23:05:06.703 回答
0

模块化脚本是一种编写脚本的方式,因此每个脚本在按原样复制到另一个解决方案时,在任何时候执行时都可以正常工作。

“正常工作”意味着正确识别其自身的上下文和参数,并执行正确的操作或根据包含在脚本中作为主要注释的文档报告正确的错误/结果代码。

于 2010-01-25T21:57:29.440 回答
0

FileMaker 中的模块化脚本使面向对象编程的继承属性适应 FileMaker 工作方式的特定粒度。Modular Scripting 意识到 FileMaker 不是一个面向对象的平台,而是一个面向上下文的平台,因此渴望尽可能地复制和粘贴。

模块化脚本可以通过调用上下文传递给它们的基于值的参数或通过为它们自己识别操作上下文来控制它们自己。模块化脚本可能依赖于 FileMaker 系统中的某些模式结构,但可能不依赖于脚本通过参数告知或可以推断(例如通过 Get() 和 Design 函数)之外的任何特定架构或上下文。

例如,模块化的“打印报告”脚本可能需要被告知要打印什么布局,甚至可能需要通过 OnLayoutLoad 或 OnModeEnter 触发器对搜索结果进行排序,但模块化的打印报告脚本宁愿不需要特定的布局命名为“打印报表布局”或特定的“Table::SortThis”字段,除非这些对于给定解决方案中脚本的多个不同应用程序是通用的。

因此,可以调用单个模块化脚本来执行适用于许多不同上下文的相同任务。

于 2010-01-25T23:57:45.763 回答