在 FileMaker 中,如何防止字段在输入数据后被更改?

In FileMaker, how can I prevent a field from being changed after data is entered?

提问人:Stew 提问时间:7/14/2023 更新时间:7/17/2023 访问量:54

问:

我有一个布局,根据我的数据库表调用它,它通过外键关系与表相关:。ExperimentsLayoutExperimentScientistScientist.Id -> Experiment.ScientistId

我的数据库用户(科学家)对 FileMaker 还有些陌生,我预计未来会有相对稳定的 FileMaker 新手涌入,因此我希望以一种将用户错误可能损害数据完整性的可能性降至最低的方式进行设计。

在我的布局中,我有一个下拉列表框。输入后,我想:ExperimentsLayoutExperiment.ScientistIdScientistId

  1. 完全防止它被更改,或者
  2. 抛出一个确认弹出窗口,以确保此更改是有意的
  3. 以其他方式防止关系被无意中改变Experiment -> Scientist

当用户浏览时,我发现有时他们正在更改浏览模式而不是查找模式,以为这是拉出与其他科学家关联的顺序的方法——但他们实际上正在做的是更改与记录相关的科学家。作为一个相对较新的FileMaker用户,我完全理解为什么用户会犯这个错误,因为浏览模式和查找模式之间的用户体验区别非常(对我来说令人震惊)被低估了。这是科学数据完整性问题的定时炸弹。ExperimentsLayoutScientistIdExperiment

外键 关系数据库 filemaker

评论

1赞 Schwarz Software 7/14/2023
请注意,您可以使用多种技术来使查找模式与编辑模式区分开来。例如,您可以在布局上添加大文本,显示仅在查找模式下显示的“查找模式”。在以下情况下使用“隐藏对象”(此选项在检查器中可见)隐藏此文本get(windowmode)=0

答:

0赞 Schwarz Software 7/14/2023 #1

如果您乐于在布局上处理它,那么最简单、最灵活的处理方法是将脚本触发器添加到 的字段中。"On Obect Enter"

  • 转到布局模式
  • 右键单击该字段,然后选择"Set Script Triggers..."
  • 选择"OnObjectEnter"

您可以使用脚本退出字段或显示确认框等。Script Trigger

或者

  • 您可以在脚本中使用“Go to field[]”向布局添加一个按钮,并处理按钮中的逻辑。该字段还需要放置在布局上。确保用户无法导航到该字段,例如按“选项卡”。通过转到检查器并关闭字段输入选项中的“浏览模式”和/或“查找模式”来删除编辑字段的功能。
  • 还有其他选项,例如将字段放在弹出框中并向弹出框添加脚本触发器。新窗口可能是一个较小的“卡片”窗口,将显示在基本窗口的顶部。

评论

0赞 michael.hor257k 7/14/2023
或者,您可以简单地将该字段设为按钮。
0赞 Schwarz Software 7/14/2023
@michael.hor257k,它是一个下拉列表,因此带有输入的简单“显示自定义对话框”不会显示列表选项。该列表可能位于新窗口中,例如卡片窗口或弹出窗口,但这仍然需要通过脚本进行控制。
1赞 michael.hor257k 7/14/2023
我没有说任何关于显示带有输入的自定义对话框的事情。该脚本可以简单地选择是否转到字段[],基于(a)字段是否为空(b)我们是否处于查找模式(c)用户确认选择。
0赞 Schwarz Software 7/17/2023
@michael.hor257k 如果按钮方法与 Go to field[] 一起使用,请确保该字段不在布局的“Tab 键顺序”中,否则只需按 Tab 键即可输入该字段。将来进行布局更改后,请始终仔细检查该字段是否未重新添加到 Tab 键顺序中。
0赞 michael.hor257k 7/17/2023
恐怕你一直错过我的观点。我的建议是使该字段不可进入。无论如何,我的方法和你的方法之间的差异很小,很大程度上是偏好问题。我更喜欢我的,因为所有的逻辑都在一个地方(脚本)。