如何在FileMaker中防止Experiment.ScientistId字段被误修改?
解决FileMaker中Experiment关联Scientist字段误修改的方案
针对科研人员误在Browse模式修改Experiment.ScientistId字段、混淆Browse与Find模式的问题,以下是几种落地的解决方法:
方案1:完全禁止已录入字段的修改
方法A:通过字段权限设置
- 打开FileMaker的管理安全(File > Manage > Security)
- 选中科研人员用户组,点击权限
- 在字段权限列表找到
Experiment::ScientistId,设置:- 新建记录时:可编辑
- 现有记录时:不可编辑
- 保存设置后,已录入的
ScientistId字段将变为只读状态,无法修改。
方法B:布局层面控制字段状态
- 进入布局模式,选中
ScientistId下拉框 - 右键选择数据选项,打开可用性标签页
- 勾选基于条件禁用字段,输入计算式:
Not IsEmpty ( Experiment::ScientistId ) - 保存布局后,字段已有值时会自动变为不可编辑状态。
方案2:修改前弹出确认弹窗
通过脚本触发器实现二次确认:
- 进入布局模式,选中
ScientistId字段 - 右键选择脚本触发器,添加OnObjectModify触发器,关联新建脚本:
If [ Not IsEmpty ( Experiment::ScientistId ) ] Show Custom Dialog [ "确认修改" ; "你正在修改实验关联的科研人员,此操作会改变数据关联,是否继续?" ; "取消" ; "确认" ] If [ Get ( LastMessageChoice ) = 2 ] # 允许修改,无额外操作 Else Set Field [ Experiment::ScientistId ; Get ( ScriptParameter ) ] End If End If注意:设置触发器时,需将
Experiment::ScientistId的当前值作为脚本参数传入,用于取消操作时恢复原始值。
方案3:其他防误改辅助措施
强化Browse与Find模式的区分度
用户混淆模式是核心诱因,可通过以下方式优化:
- 背景色区分:进入布局模式,在布局设置的视图选项中,为Browse模式设置浅色背景,Find模式设置醒目的淡橙色背景。
- 模式提示栏:在布局顶部添加只读计算字段,显示当前模式:
放在显眼位置,让用户一眼识别当前模式。Case ( Get ( WindowMode ) = 0 ; "浏览模式(编辑记录)" ; Get ( WindowMode ) = 1 ; "查找模式(搜索记录,不修改数据)" ; Get ( WindowMode ) = 2 ; "预览模式" )
提供安全的关联切换方式
如果用户需要查看其他科研人员的实验记录,不要让他们修改字段,而是添加专门的导航按钮:
- 在布局添加下拉列表按钮,关联
Scientist::Name,点击后执行查找脚本:
用户选择科研人员后直接跳转至对应记录,不会误修改现有数据。Enter Find Mode [ ] Set Field [ Experiment::ScientistId ; Scientist::Id ] Perform Find [ ]
内容的提问来源于stack exchange,提问作者Stew
相关产品推荐
相关产品推荐

