转到不按预期工作的相关记录

时间:2017-11-30 05:49:55

标签: filemaker

我遇到问题"转到相关记录"脚本,它没有带我到预期的记录集。

我有两个表:agendasitemsAgendas可以有多个items,而items可以存在多个agendas。所以为了支持这一点,我创建了第三个表AgendaItems

我有两种布局:议程(复数)和议程(单数)。对于非常相似的名字道歉。

Agendas(复数)是一个列表视图,它将每个议程显示为一行。当我点击议程时,我使用"转到相关记录"导航到议程(单数)布局并仅显示该特定议程的项目。

enter image description here

Agenda(singular)是一个基于Item表的表单视图。它包含一个显示议程上所有项目的门户。当我点击门户中的某个项目时,它会显示该特定项目的详细信息。我使用笛卡尔联接到AgendaItem表的一个实例来完成此任务。

enter image description here

在尝试将多个Item放在多个Agendas上之前,一切都运转良好。当我为AgendaItem创建第二个Item记录时,"转到相关记录"脚本停止按预期工作。

具体来说,当我尝试从Agendas(复数)导航到Agenda(单数)时,每次都会带我到同一组记录。

例如,如果我点击议程AI,请参阅与议程A相关的项目。但是当我点击议程BI时,也会看到议程A的项目。如果我删除了指向{AgendaItem的{​​{1}}记录1}}第二次再次运作。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

好吧,如果没有查看文件,很难确切地指出它,但要小心使用连接表的笛卡尔连接。无论门户网站中是否有任何过滤器,笛卡尔连接总是会解析为外表中的完整记录集。

答案 1 :(得分:0)

  

Agenda(singular)是一个基于Item表的表单视图。它包含一个显示议程上所有项目的门户网站。

“议程”布局应基于议程TO。使用基于AgendaItems TO的门户显示相关项目。

要查看相关的项目记录,请分两步执行:

Go to Related Records [ AgendaItems ; current record ]
Go to Related Records [ Items ; found set ]

第一个GTRR选择相关的AgendaItems记录,并根据AgendaItems TO更改布局。第二个GTRR查找与当前找到的AgendaItems记录集相关的Items记录,并根据Items TO更改布局。

BTW如果使用过滤来控制Agendas表单布局上的AgendaItems门户中的记录显示,您可以在两个GTRR步骤之间进行一些处理,以省略未显示的连接记录... < / p>

go to related records [ AgendaItems ; current record ]

go to record/request [ first ]

loop
 exit loop if [ get( found count ) = 0 ]
 if [ <portal_filter_expression> = 1 ]
  go to record/request [ next ; exit after last ]
 else
  omit record/request
 end if
end loop

if [ get( found count ) = 0 ]
 go to layout [ original layout ]
 show custom dialog [ "There are no items to display." ] 
 exit script
end if

go to related records [ Items ; found set ]