计划脚本
• 是否可以将任务分解为若干小任务?您可以为每个小任务定义子脚本,然后定义执行子脚本的脚本。设计和测试若干小脚本要比设计和测试一个复杂的脚本更为容易。您还可以在其他领域重复使用这些子脚本。(使用执行脚本 脚本触发器执行其他脚本内部的子脚本。)
• 在何种情况下应该执行什么脚本步骤?需要始终执行每个脚本步骤吗?某些脚本是否应该执行若干次,直到满足某个条件?脚本是否调用其他脚本和子脚本?可以按照多种不同方法来控制脚本进度。有关创建具有条件步骤脚本的更多信息,请参阅控制脚本步骤。
•
• 应该针对数据库中的所有记录、当前搜索结果、还是特定记录集执行脚本?(使用搜索结果脚本步骤仅包括希望在搜索结果中处理的记录。)
• 您需要的所有数据是否在一个数据库文件中,如果不在一个文件中,脚本是否会在多个文件中执行?如果使用多个文件,脚本会打开哪些文件?应该在哪个文件中定义脚本?在大多数情况下,应该在处理数据的文件中定义脚本。具有多个文件的数据库解决方案可能需要在每个文件中有单独的脚本,这取决于尝试利用脚本执行的任务的复杂程度。
• 脚本以哪条记录开始?例如,使用 Loop 脚本触发器时,您必须决定循环是从第一条或最后一条记录、特定记录、还是搜索结果中的当前记录开始。(使用转到记录/请求/页面 脚本触发器、转到相关记录 脚本触发器或转到入口行 脚本触发器指定起始记录。如果没有包括确定当前记录的导航脚本步骤,则在执行脚本时循环从当前记录开始。)
• 要使用哪个窗口?脚本最初附加到一个特定窗口,该窗口可能在背景中。脚本保留在该窗口中,直到脚本化操作切换到另一个窗口为止。例如,使用选择窗口 脚本触发器指定另一个窗口。如果指定的窗口不可用,则脚本将切换到文件的前景窗口。当您暂停一个脚本时,关联的窗口会变成前台窗口(如果它可用)。
• 脚本是否应该在模式之间切换?脚本可以在浏览、查找、布局或预览模式中运行。在脚本执行任务前,请确保其处于正确的模式下。例如,使用进入浏览模式 脚本触发器修改字段和记录中的数据,使用进入查找模式 脚本触发器设置或执行查找请求。
• 脚本需要哪些字段和布局?某些步骤(如转到字段 脚本触发器和插入文本 脚本触发器)要求字段位于当前布局上,而其他步骤(如设置字段 脚本触发器)则不要求。使用转到布局 脚本触发器切换到具有脚本所要求字段的布局,或者将灰色区域上的字段放到布局的右侧以使字段可用于脚本步骤而不是用户。
•
•
•
• 如何测试脚本?使用暂停/继续脚本 脚本触发器在脚本中的预定义位置暂停。保存数据库的副本,然后在数据库中定义并测试脚本以保留原始数据。
• 如何处理错误条件(如空的搜索结果)?可以使用 Get(上一个错误) 函数捕获 FileMaker Pro 报告的上一个错误条件。使用此函数和 If 脚本触发器、Else If 脚本触发器以及 Else 脚本触发器创建脚本,对用户错误或意外结果做出合理地反应。要获得更大的控制,请使用设置错误捕获 脚本触发器来禁止显示 FileMaker Pro 通常会在下列情况下显示的错误警告,然后使用显示自定义对话框 脚本触发器。
• 是否应该允许所有用户执行全部脚本?使用权限集控制用户对脚本的访问。通过使用权限集,用户可以执行或修改单个脚本或所有脚本,也可以不执行或修改任何脚本。还可以为以后在文件中定义的新脚本的每个权限集设置默认权限。设置脚本以完全访问权限运行将允许该脚本在用户所分配的权限通常不允许的情况下代表用户执行任务。请参阅管理权限集。
• 用户如何执行脚本?您需要创建按钮来执行脚本,或指定要添加到“脚本”菜单中的脚本。脚本还可以从“脚本工作区”窗口中运行,也可以在脚本触发器处于激活状态时运行。例如,可以在数据库打开时使用OnFirstWindowOpen脚本触发器运行脚本。