在 filemaker 中计算实际经过的天数?

在 filemaker 中计算实际经过的天数?

如何让 Filemaker 始终单独显示布局中字段中存储的从给定日期开始的实际经过天数?

例子

我将今天的日期输入数据库。当我查看今天的视图时,应该有一个单独的文本字段显示 0 天。一周后,这个文本字段应该显示 7 天。

答案1

场地保存日期

独立字段已用天数

(文本?为什么你想让数字变成文本?如果学生真的想要的话,转换就留给学生练习。很容易找到……)

ElapsedDays,类型为计算,按钮 [选项] 获取 (当前日期) - 存储日期

按钮 [存储选项]查看不存储计算结果 - 根据需要重新计算

如果您不更改存储选项,它将在创建时运行,并且不会更改。这是让它在当前日期更改时更改的关键设置。

如果由于某些奇怪的原因,您确实想在字段中存储不变的文本“天”以及数字,那么也可以在计算中完成,但这只会使其变得更加繁琐。

GetAsText(Get(当前日期)-存储日期)&“天”

那么,480 天过去了,竟然没有一个点赞?我知道距离我回答这个问题已经过去 480 天了,因为它确实有效,而且我还有我为了测试它而拼凑起来的测试数据库……

答案2

当然,有很多方法可以实现这一点。这取决于您的解决方案以及您希望计算在布局上如何显示。

使用 FileMaker 14 无需在数据表中使用未存储的计算即可完成此操作。您可以利用 Filemaker 的计算引擎直接在布局上使用隐藏时间对简单文本对象进行计算。按钮也可以用于此目的。

假设您在字段中存储了日期,我们在此示例中将其称为 Table::myDate,其中Table是您的表名,myDate是存储了日期的日期字段。

布局

  • 按照您想要的布局进入布局模式。(Windows 上为+Lcontrol+ )L
  • 插入新的文本对象并输入合并变量(合并变量可以是当地的或者全球的在范围内。在这种情况下,您可以使用局部变量,当布局离开或刷新时,该变量将被丢弃。)您可以使用任何您想要的变量名,我们将$daysElapsed在本例中使用它。因此您的文本对象将<<$daysElapsed>>作为文本输入。
  • 前往数据选项卡在里面检查器窗格
  • 前往隐藏时间计算
  • 使用Let()我们可以利用 Filemaker 的计算引擎,而无需向表中添加字段。输入如下 let 语句:
    Let ( $daysElapsed = Get ( CurrentDate ) - Table::myDate ; False )
    这将在进入布局时自动设置 $daysElapsed 变量。从而显示已过去的天数。False在 Let 语句中返回结果允许始终显示对象。请参阅下面的屏幕截图。

要向其中添加文本,只需将其添加到计算中,也可以在合并变量声明之前直接将其添加到文本对象中。如下所示:
Days elapsed: <<$daysElapsed>>

布局模式

浏览模式

计算已用天数

检查器窗格-当...时隐藏对象

相关内容