0

这是关于我的项目(设计临床试验表格)的后续问题。我的第一个问题在这里:Filemaker Pro:使用选项卡控件创建表格的多个条目

为了简化,我创建了一个测试 FMP 文件。这是数据库的设计和布局。
示例的数据库结构
布局

对于每位患者,我在 Patient Table 中创建一条记录 - Patient_ID 是标识符。我将提供一些一般信息(这里我只使用了名称)。在另一个标有“Tableau_Data”的表上,我将存储一些数据 - Data_ID 是标识符。表 Patient”和“Tableau_Data”与 Patient_ID 链接。

数据将始终由相同的字段组成(在我的示例中:“Turlututu”) - 实际上超过 50 个参数。我们将收集 5 天的数据(所以我有 5 个标签)。感谢 Sam Barnum 的帮助,通过使用门户,我能够在每个选项卡中拥有不同的“Tableau_Data”记录。

但我想在“Tableau_Data”的每条记录中存储它来自的选项卡(字段“Jour”)。所以我想有一种方法可以根据选项卡自动设置“Jour”的值:一个脚本可能链接到门户或字段。但是如何?

理想情况下,我想隐藏“Jour”字段。

默认情况下,我可以做一个下拉列表,让用户设置这个变量的值。我宁愿那样。不符合人体工程学,并且可能在数据捕获过程中导致错误。

Sam Barnum 暗示也许我可以预先生成 Tableau_Data 的 5 条记录链接到我的 Patient_ID。因此,我会知道记录 1、6、11、16,... 用于 Jour=1,记录 2、7、12,... 用于 Jour=2,依此类推。但我什至不知道该怎么做。

4

2 回答 2

1

您的脚本和自动输入计算可以自动“知道”用户在哪个选项卡上。这是通过使用布局对象名称和函数 Get (ActiveLayoutObjectName) 来实现的。

在 FileMaker 中,每个布局或布局对象组都可以有一个“名称”。FileMaker 强制执行名称的唯一性,因此您不可能有 2 个同名对象。您可以通过“位置”选项卡上的检查器设置布局对象名称。它在顶部。

在您的情况下,您可以为每个选项卡命名。这是通过在布局模式下双击选项卡来完成的。当它被选中时,它周围有一个黑色边框。然后如上所述使用 Inspector 分配名称。

一旦您的每个选项卡都有一个唯一的名称。您可以使用 Get ( ActiveLayoutObjectName ) 来确定用户当前处于活动状态的选项卡。

根据您的情况,您可以使用脚本执行此操作。或者,让数据库中的字段将自动输入计算设置为“Get (ActiveLayoutObjectName)”可能会更容易,这样数据库将记录用户在创建记录时所在的选项卡。这是我相信你想要的结果。

于 2012-04-28T14:06:07.773 回答
0

如果您只有少量的 Jour 值(5,正如您所指出的),那么为 Jour 的每个值设置新关系可能是最容易的——每个选项卡一个。

对于您的 Patient_ID 表,您将为 Jour 的每个值添加一个新字段。每个字段都是一个计算字段,计算的值是 Jour 的特定值。例如,Patient_ID 表将具有以下值:

Patient_ID::Patient_ID
Patient_ID::Nom
Patient_ID::Jour1 (Calculation value set to 1)
Patient_ID::Jour2 (Calculation value set to 2)
  ...
Patient_ID::Jour5 (Calculation value set to 5)

然后,您将设置 5 个新关系,将 Patient_ID 和每个 Jour 字段一次一个链接到 Tableau_Data 字段的新表出现次数(在本示例中标记为 Tableau_Data_Jour#:)

Jour1
Patient_ID::Patient_ID = Tableau_Data_Jour1::Patient_ID
Patient_ID::Jour1 = Tableau_Data_Jour1::Jour

一路走来:

Jour5
Patient_ID::Patient_ID = Tableau_Data_Jour5::Patient_ID
Patient_ID::Jour5 = Tableau_Data_Jour5::Jour

对于每个新关系,您都需要打开“允许通过此关系在此表中创建记录”。

然后,您将更改每个选项卡上的字段,以便 Jour 1 选项卡使用 Tableau_Data_Jour1 表中的字段,而 Jour 5 选项卡使用 Tableau_Data_Jour5 表中的字段。

您还可以考虑:

以上应该可以正常工作,但它很丑陋并且为您创造了很多工作。如果选项卡不是严格要求,我建议您改为执行以下操作:

  1. 在 Patient 表上创建一个新的“JourCurrent”编号字段。
  2. 创建与上述类似的关系,再次允许在 Tableau_Data_Jour 表上创建新记录:

    Patient_ID::Patient_ID = Tableau_Data_Jour::Patient_ID

    患者 ID::JourCurrent = Tableau_Data_Jour::Jour

  3. 用 Jour 的所有值创建一个新的值列表

  4. 将 JourCurrent 字段放在布局上,并将其设置为从值列表中获取值作为弹出菜单。
  5. 让用户从弹出菜单中选择适合今天输入的 Jour,而不是使用选项卡。

这样做的好处是您只需要维护每个相关字段(Tableau_Data_Jour 字段)一次,并且您可以添加一个新字段一次,而不是每个选项卡一次。

于 2012-04-28T14:35:20.950 回答