我遇到问题"转到相关记录"脚本,它没有带我到预期的记录集。
我有两个表:agendas
和items
。 Agendas
可以有多个items
,而items
可以存在多个agendas
。所以为了支持这一点,我创建了第三个表AgendaItems
。
我有两种布局:议程(复数)和议程(单数)。对于非常相似的名字道歉。
Agendas(复数)是一个列表视图,它将每个议程显示为一行。当我点击议程时,我使用"转到相关记录"导航到议程(单数)布局并仅显示该特定议程的项目。
Agenda(singular)是一个基于Item表的表单视图。它包含一个显示议程上所有项目的门户。当我点击门户中的某个项目时,它会显示该特定项目的详细信息。我使用笛卡尔联接到AgendaItem表的一个实例来完成此任务。
在尝试将多个Item
放在多个Agendas
上之前,一切都运转良好。当我为AgendaItem
创建第二个Item
记录时,"转到相关记录"脚本停止按预期工作。
具体来说,当我尝试从Agendas(复数)导航到Agenda(单数)时,每次都会带我到同一组记录。
例如,如果我点击议程AI,请参阅与议程A相关的项目。但是当我点击议程BI时,也会看到议程A的项目。如果我删除了指向{AgendaItem
的{{1}}记录1}}第二次再次运作。
我做错了什么?
答案 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 ]