You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

FileMaker下拉列表联动:同步选中年份及上年对应价格字段值

FileMaker实现年份选择同步对应价格字段的方案

方法一:计算字段自动同步(无需脚本)

直接通过计算字段实现实时同步,适合逻辑简单的场景:

  1. 配置「Price for the selected year」字段:

    • 打开字段定义,将该字段类型设为计算
    • 写入计算式(示例为数字年份,若年份是文本类型,给年份值加引号即可):
      Case (
        For this year = 2020 ; Price 2020 ;
        For this year = 2021 ; Price 2021 ;
        For this year = 2022 ; Price 2022 ;
        // 依次添加剩余年份的对应关系
        ""
      )
      
  2. 配置「Price for the year before」字段:

    • 同样设为计算字段,先计算上一年再匹配价格:
      Let (
        prevYear = For this year - 1 ;
        Case (
          prevYear = 2019 ; Price 2019 ;
          prevYear = 2020 ; Price 2020 ;
          // 对应添加所有可能的上一年份与价格字段的关系
          ""
        )
      )
      
    • 若年份是文本格式,先转数字处理:prevYear = GetAsNumber(For this year) - 1

方法二:触发器+脚本同步(灵活扩展)

如果后续需要添加验证、日志等额外逻辑,用脚本触发更合适:

  1. 设置字段触发器:

    • 进入布局模式,选中「For this year」字段,右键选择设置触发器
    • 添加「OnObjectModify」触发器,关联一个新建脚本
  2. 编写同步脚本:

    # 获取选中年份(转数字统一处理)
    Set Variable [ $selectedYear ; Value: GetAsNumber(For this year) ]
    # 同步选中年份的价格
    Set Field [ Price for the selected year ; Evaluate ( "Price " & $selectedYear ) ]
    # 同步上一年价格
    Set Variable [ $prevYear ; Value: $selectedYear - 1 ]
    Set Field [ Price for the year before ; Evaluate ( "Price " & $prevYear ) ]
    
    • Evaluate函数直接拼接字段名,避免大量Case判断,维护更方便
    • 若年份是纯文本格式,可去掉GetAsNumber,直接用文本拼接

关键注意事项

  • 保证所有价格字段命名格式统一(如「Price XXXX」),避免拼接或判断出错
  • 下拉列表的年份选项格式(文本/数字)要和计算式/脚本中的处理逻辑一致
  • 计算字段会自动实时更新;脚本触发需确保布局权限允许脚本执行,且触发器处于启用状态

内容的提问来源于stack exchange,提问作者Samlego2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 04:10:17