Filemaker自加入门户过滤

时间:2016-03-22 11:02:17

标签: filter duplicates filemaker portal self-join

我有一个从多个XML源导入的项目数据库,这个数据库名为导入

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

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

因此...

表:IMPORT

SourceID = Number

表:IMPORT_HISTORY

fk_SourceID =数字

ImportDate =时间戳

ImportCount = Number

关系

Import :: SourceID = Import_History :: fk_SourceID

我需要什么

导入表格布局中,我想要一个显示 Import_History 记录的门户网站,以便查看上次导入每个XML源的时间。我只想显示每个SourceID的最新 Import_History记录。

我想我需要在Import和Import_History( Import_History_All )的新表格之间进行笛卡尔联接,并且新表格的自联接出现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记录。我无休止地用Google搜索,并没有想到这一点。

有人可以帮忙吗?

**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

2 个答案:

答案 0 :(得分:0)

  

我想要一个显示Import_History记录的门户网站,以便我可以看到   上次导入每个XML源时。我只想展示最多   每个SourceID的最近Import_History记录。

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

如果将Import_History中的字段直接放置到Import表的布局(任何门户网站之外),它们将显示Import_History中第一个相关记录的数据。

这假设了一个简单的关系:

Import::SourceID = Import_History_All::fk_SourceID

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

答案 1 :(得分:0)

  

Import_History_All :: fk_SourceID = Import_History_All_Self_Join :: fk_SourceID

上述关系是一个连接,它将导致在门户中显示具有指定源ID的每条记录。基本上,上面的关系将在IMPORT HISTORY表中显示具有相同SourceID的指定门户记录。如果您想查看您所在记录的sourceID的最新记录,那么这将是所需的关系,剩下的就是对门户网站进行排序并过滤以仅显示最新值。如果您只想要当前使用的SourceID的最新导入,那就没问题了。

  

在Import表布局上,我想要一个显示Import_History记录的门户,这样我就可以看到上次导入每个XML源的时间。我只想显示每个SourceID的最新Import_History记录。

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

<强>关系:

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

Import_Tracking :: Most_Recent = Import_History :: ImportID

表:IMPORT_HISTORY

fk_SourceID =数字

ImportDate =时间戳

ImportCount = Number

ImportID =文字/数字(主键)

表:IMPORT_TRACKING

fk_SourceID =数字

Most_Recent =文本/数字(无论您将“ImportID”定义为)