Filemaker 自加入门户过滤

Filemaker self join portal filtering

我有一个项目数据库,这些项目是从多个 XML 来源导入到名为 Import.

的 table

每个 XML 源都有自己的 SourceID 编号。这个号码放在每一个项目记录中。

每次导入都记录在名为 Import_History 的相关 table 中。这会记录 SourceID、每次导入的日期以及导入的项目数。

所以...

TABLE: 导入

SourceID = 编号

TABLE: IMPORT_HISTORY

fk_SourceID = 数量

导入日期 = 时间戳

ImportCount = 数量

关系

导入::SourceID = Import_History::fk_SourceID

我需要什么

Import table 布局中,我想要一个显示来自 Import_History 的记录的门户,所以我可以查看每个 XML 源最后一次导入的时间。我只想显示每个 SourceID 的 最近 Import_History 记录。

我想我需要在 Import 和 table 新出现的 Import_History (Import_History_All) 之间进行笛卡尔连接,以及自加入 table 出现的 Import_History (Import_History_All_Self_Join).

所以...

笛卡尔

导入::SourceID x Import_History_All::fk_SourceID

自行加入

Import_History_All::fk_SourceID = Import_History_All_Self_Join::fk_SourceID

到目前为止我做了什么

我关注了这个:

http://www.filemakertoday.com/com/archive/index.php?t-32667.html

还有这个:

http://scarpettagroup.com/filemaker-portal-show-distinct-value-tutorial/

但它不过滤记录。我总是在门户中获得所有 Import_History 记录。我无休止地用谷歌搜索,但没有弄明白。

有人能帮忙吗?


**EXAMPLE DATA**

*Import*

 - SourceID: 1234
 - Item: Widget1
 - Price: 3

 - SourceID: 1234
 - Item: Widget2
 - Price: 5

 - SourceID: 1234
 - Item: Widget3
 - Price: 10

*Import_History*

 - fk_SourceID: 1234
 - ImportDate: 22/03/2016 12:00:00
 - ImportCount: 3

 - fk_SourceID: 1234
 - ImportDate: 21/03/2016 12:00:00
 - ImportCount: 2

I want a portal that shows records from Import_History so I can see when each XML source was last imported. I only want to show the most recent Import_History record for each SourceID.

如果您按 ImportDate(在关系设置中)对来自 Import_History 的相关记录进行排序,那么最近的导入将成为 第一个 相关记录。

如果您将来自 Import_History 的字段直接放置到导入 table 的布局上(在任何门户之外),它们将显示来自 Import_History 中第一条相关记录的数据。

这假定了一个简单的关系,其中:

Import::SourceID = Import_History_All::fk_SourceID

我不明白你为什么需要其他任何东西。

Import_History_All::fk_SourceID = Import_History_All_Self_Join::fk_SourceID

上面的关系是一个联接,它将导致在门户中显示具有指定源 ID 的每条记录。基本上上面的关系将在 IMPORT HISTORY table 中显示具有相同 SourceID 的指定门户记录。如果您想查看您所在记录的 sourceID 的最新记录,这将是所需的关系,剩下的就是对门户进行排序和过滤以仅显示最新值。如果您只想为您当前所在的 SourceID 导入最新的数据,这很好。

On the Import table layout, I want a portal that shows records from Import_History so I can see when each XML source was last imported. I only want to show the most recent Import_History record for each SourceID.

仅显示每个 SourceID 的最新记录的最有效方法是利用另一个 table 来存储最新值。 table 将包含源 ID 具有唯一值的记录(每个源只有一个记录),这些记录将包含最新记录的导入 ID。导入 ID 是 Import_History table 的主键,您可以添加它来定义每个 Import_History 记录之间的区别。要实现此结果,必须修改当前的导入脚本。修改应包括一个捕获 Import_ID 的变量。 tables ImportImport_Tracking的关系只会调出一条记录,然后就可以使用set field 脚本步骤将字段 Import_Tracking::Most_Recent 设置为先前定义的变量,该变量保存 Import_ID 的值。此时您有 Import_Tracking table,其中包含每个源的最近更新记录的唯一 Import_ID。您可以在 Import table 和 Import_Tracking table 中使用笛卡尔连接来显示所有Import_Tracking table 中的记录,其中只有每个唯一来源的最新 importID。如果您想查看 Import_History table 中的数据,您需要做的就是在 Import_Tracking 之间创建关系Import_History table,然后您可以将相关字段放在您的门户中以查看数据。我已经在下面包含了应该添加的关系和字段。如果有什么不明白的地方请告诉我。

关系:

Import::SourceID = Import_Tracking::fk_SourceID(具有通过关系添加记录的能力)

Import_Tracking::Most_Recent = Import_History::ImportID

TABLE: IMPORT_HISTORY

fk_SourceID = 数量

导入日期 = 时间戳

ImportCount = 数量

ImportID = Text/Number(主键)

TABLE: IMPORT_TRACKING

fk_SourceID = 数量

Most_Recent = Text/Number(无论您将 "ImportID" 定义为什么)