对于FileMaker脚本步骤“设置下一个序列值”,如何动态指定表和字段名称?

时间:2016-06-01 13:33:01

标签: database macos filemaker

我正在编写一个旨在用于多个布局和表格的脚本。对于每个,它将确定主键,然后在该主键字段的任何记录中找到最大值。这一切都运作良好。现在,我已经计算了我想要的下一个序列值,并希望将其分配给一个名字我保存在变量中的字段。 我无法使用变量指定目标字段。我只看到从现有字段列表中选择表格和字段的选项。

我的问题:

  • 有没有办法动态指定目标字段?

  • 为什么“指定目标字段”有复选框?我看到当我没有指定目标字段时,我收到错误102(缺少字段)。我不明白为什么它是可选的但如果不使用它会返回错误。为什么不强制要求?

我试过了:

  • 脚本步骤“转到字段”。我希望在“设置下一个序列值”之前放置此脚本步骤将允许我将“指定目标字段”留空。但是“设置下一个序列值”仍然存在错误102。并且“go to field”也无法动态指定。
  • 我正在使用FileMaker 11,但我也调查了FileMaker 15,也无法从计算中指定目标字段。在FM 11和15中,可以指定计算中的重复次数,但不能指定目标。
  • 我已经考虑了确定下一个序列值的各种方法,但所有这些方法都取决于能够动态指定目标。如果无法做到这一点,我将需要重新考虑我的策略并分别为数据库中的每个表编写脚本。
  • 这是我对同一个问题的讨论。 http://fmforums.com/topic/93934-set-dynamic-next-serial-value/关于为什么“指定目标字段”是可选的我的问题没有在那里得到解答所以我想我会在这里提出问题,以防任何人有其他信息。

正如您可能会注意到的,我在这里相对较新,所以我也很感激有关如何改进此问题的格式或内容的任何提示。

Set Next Serial Value

1 个答案:

答案 0 :(得分:1)

在我们Set Next Serial Value之前,我们使用Replace Field Contents来获得相同的效果,但它更复杂,尽管它允许您动态地执行此操作。基本的想法是,您需要在具有最大序列号的记录上,隔离该记录,确保您在带有序列号字段的布局上,转到该字段,然后使用{{1}将字段设置为自身,同时还更新下一个序列值。该脚本看起来像这样:

Replace Field Contents

不,我没有在示例文件上对此进行测试,但这是我们在FileMaker,Inc。向我们提供Go to Layout [ // layout that has the target field ] Enter Find Mode Set Field By Name [ $_target_field ; $_max_serial ] Perform Find Loop Go to Next Field Exit Loop If [ Get(ActiveFieldTableName) & "::" & Get(ActiveFieldName) = $_target_field ] End Loop Replace Field Contents [ No Dialog ; Replace with serial numbers: Custom values ; Initial Value: $_max_serial ; Increment by: 1 ; Update serial number in Entry Options ] 之前使用的基本技术。