FMP 14 - 根据计算自动填充字段

时间:2015-12-07 04:35:22

标签: filemaker

我正在使用FMP 14,并希望根据以下计算方式自动填充字段A

If ( Get ( ActiveLayoutObjectName ) = "tab_Visits_v1" ; "1st" ) or
If ( Get ( ActiveLayoutObjectName ) = "tab_Visits_v2" ; "2nd" ) or
If ( Get ( ActiveLayoutObjectName ) = "tab_Visits_v3" ; "3rd" ) or
If ( Get ( ActiveLayoutObjectName ) = "tab_Visits_v4" ; "4th" ) or
If ( Get ( ActiveLayoutObjectName ) = "tab_Visits_v5" ; "5th" ) or
If ( Get ( ActiveLayoutObjectName ) = "tab_Visits_v6" ; "6th" ) 

以上代码应该在字段1st中自动填充值2nd3rdA ...,具体取决于对象的名称{ {1}}函数返回。我已经为每个选项卡命名,但计算仅返回0.

任何帮助都将不胜感激。

感谢。

2 个答案:

答案 0 :(得分:0)

编写计算的方式很有意义。每个If()语句都返回“1st”,“2nd”等结果或者没有结果(空字符串)。然后,您将or应用于所有这些结果。因为只有它们才是真的,所以你的计算基本上是这样的:

 "" or "2nd" or "" or "" or "" or ""

碰巧返回1(真),但没有用处。

你应该在这里使用Case()函数:

Case ( 
Get ( ActiveLayoutObjectName ) = "tab_Visits_v1" ; "1st" ; 
Get ( ActiveLayoutObjectName ) = "tab_Visits_v2" ; "2nd" ; 
Get ( ActiveLayoutObjectName ) = "tab_Visits_v3" ; "3rd" ; 
Get ( ActiveLayoutObjectName ) = "tab_Visits_v4" ; "4th" ; 
Get ( ActiveLayoutObjectName ) = "tab_Visits_v5" ; "5th" ; 
Get ( ActiveLayoutObjectName ) = "tab_Visits_v6" ; "6th" 
) 

另请注意,由于用户切换选项卡,计算字段可能无法始终刷新自身。这是指未存储的计算字段;如果您尝试将此作为公式自动输入“常规”(例如文本)字段,则永远不会更新。

加了:

  

这是我们的情况。我们最多看病人6次。我们有   这6次访问中的每一次都有一个标签。

我建议你使用门户相关的访问表而不是标签控件。选项卡控件旨在显示用户界面的固定组件 - 而不是动态数据。当然不是数据分成单独的记录。每个患者应该只有一个独特的记录 - 并且每个患者的访问记录可能是必要的(可能是无限的)。

如果您愿意,可以使用门户行作为按钮来选择特定访问以更详细地查看(类似于选项卡控件,但门户将“选项卡”显示为垂直行除外)。我相信,按用户选择过滤的同一个Visits表的一行门户网站可以很好地用于此目的。

答案 1 :(得分:0)

用1. ....这很容易:

Right (Get ( ActiveLayoutObjectName ) ; 1) & "."

感谢您指出,我的第一个版本不起作用。