如何根据Apex中的视图/表创建报表/表单页面组合?

时间:2011-11-09 13:33:00

标签: oracle oracle-apex

是否可能,如果是,那么如何创建两个页面(一个报告,一个编辑表单),但是将报告基于视图,并将编辑表单基于表格?

我有一个非常复杂的视图,它不能更新,所以我需要让编辑表单基于表中的原始数据。这怎么可能?

1 个答案:

答案 0 :(得分:2)

首先,您需要创建报告,并将其基于您的表格。 然后创建表单。

要将它们链接起来,您需要知道表单所基于的表的主键。我假设你的表有一个由1或2列组成的PK,你的自动行提取+ DML进程使用这个PK。 PK in form 这是因为PK值构成了报表中的行与表单中的行之间的链接。

在报告属性中,然后找到“链接列”部分 - 或者如果要将报告中的列用作链接,则转到该列的选项,然后在其中找到“链接列”部分。该链接必须是“链接到自定义目标”。选择图标或定义链接文本。 报告属性上的链接意味着您必须在单行列图标或自定义链接之间进行选择。如果链接已就位,请在报表查询中创建新的空列,并配置该列中的链接。 Link column attributes

Settings:
Target: Page in this Application
Page: the page number of your form
Clear Cache: page number of your form

然后传递唯一标识用于表单的表中行的值(您的pk)。 例如:

Item 1: Name: "P2_EMPNO" Value: "#EMPNO#"

这就是它的要点,也是当您使用向导为包含报告的表单生成表单和报表之间的链接时。

更复杂的情况? 例如,您的PK有两列以上。在Apex 4.1中,您可以将自动行提取和dml基于表格的rowid(救生员)。在这种情况下,您可以考虑在视图中包含表的记录的rowid(当然,它需要在您的视图中显示别名)。然后,您可以将此rowid传递给包含表单页面上的rowid的项目。

不在4.1上,或者rowid不是一个选项,并且PK有两列以上:您需要编写自己的行获取和dml进程,或者使用替代触发器创建视图。我认为更好的做法是查看表,并将PK列连接到视图的列中。然后,此列可用作顶点生成的进程中的PK值。无论哪种方式,您都需要提出一种识别行的方法,并提供在表单页面上获取和处理的正确方法。请参阅this question for some more info