如何让 Filemaker 始终单独显示布局中字段中存储的从给定日期开始的实际经过天数?
例子
我将今天的日期输入数据库。当我查看今天的视图时,应该有一个单独的文本字段显示 0 天。一周后,这个文本字段应该显示 7 天。
答案1
场地保存日期
独立字段已用天数
(文本?为什么你想让数字变成文本?如果学生真的想要的话,转换就留给学生练习。很容易找到……)
ElapsedDays,类型为计算,按钮 [选项] 获取 (当前日期) - 存储日期
按钮 [存储选项]查看不存储计算结果 - 根据需要重新计算
如果您不更改存储选项,它将在创建时运行,并且不会更改。这是让它在当前日期更改时更改的关键设置。
如果由于某些奇怪的原因,您确实想在字段中存储不变的文本“天”以及数字,那么也可以在计算中完成,但这只会使其变得更加繁琐。
GetAsText(Get(当前日期)-存储日期)&“天”
那么,480 天过去了,竟然没有一个点赞?我知道距离我回答这个问题已经过去 480 天了,因为它确实有效,而且我还有我为了测试它而拼凑起来的测试数据库……
答案2
当然,有很多方法可以实现这一点。这取决于您的解决方案以及您希望计算在布局上如何显示。
使用 FileMaker 14 无需在数据表中使用未存储的计算即可完成此操作。您可以利用 Filemaker 的计算引擎直接在布局上使用隐藏时间对简单文本对象进行计算。按钮也可以用于此目的。
假设您在字段中存储了日期,我们在此示例中将其称为 Table::myDate,其中Table
是您的表名,myDate
是存储了日期的日期字段。
布局
- 按照您想要的布局进入布局模式。(Windows 上为⌘+L 或control+ )L
- 插入新的文本对象并输入合并变量(合并变量可以是当地的或者全球的在范围内。在这种情况下,您可以使用局部变量,当布局离开或刷新时,该变量将被丢弃。)您可以使用任何您想要的变量名,我们将
$daysElapsed
在本例中使用它。因此您的文本对象将<<$daysElapsed>>
作为文本输入。 - 前往数据选项卡在里面检查器窗格
- 前往隐藏时间计算
- 使用
Let()
我们可以利用 Filemaker 的计算引擎,而无需向表中添加字段。输入如下 let 语句:
Let ( $daysElapsed = Get ( CurrentDate ) - Table::myDate ; False )
这将在进入布局时自动设置 $daysElapsed 变量。从而显示已过去的天数。False
在 Let 语句中返回结果允许始终显示对象。请参阅下面的屏幕截图。
要向其中添加文本,只需将其添加到计算中,也可以在合并变量声明之前直接将其添加到文本对象中。如下所示:
Days elapsed: <<$daysElapsed>>