【问题标题】:Oracle APEX - Reusable Pages?Oracle APEX - 可重用页面?
【发布时间】:2019-07-02 01:24:09
【问题描述】:

我们的数据库中有一些表,它们都具有相同的属性,但每个表的名称不同。我不确定建筑师以这种方式创建它们的初衷,但这是我必须使用的。

我对所有专家级 Oracle APEX 开发人员的问题:是否可以创建一个可重用的页面,我可以将表名传递给该页面,并且该表名将用于该页面的报告区域和 DML 处理?

我已经阅读了有关模板和插件的信息,但没有看到这些选项的前进道路。当然,我是 web 开发的新手,所以请原谅我的无知。

我们使用的是 18.2 版。

谢谢, 布赖恩

【问题讨论】:

  • 您打算使用插入、更新或删除吗?还是您只是显示表格中的数据?

标签: oracle-apex oracle-apex-5 oracle-apex-5.1


【解决方案1】:

我从未尝试过使用报告,但是将所有三个报告放在一个页面中,并通过一个项目将它们设置为具有决定页面中显示内容的服务器端条件是否可行?您可能需要具有确定值的单独项目才能识别和显示页面。

我知道我这样做是为了动态设置删除、保存和创建等按钮,而不是创建两个或多个单独的页面来处理某些信息的编辑。在这种情况下,它会根据发送到所述“编辑”页面的报告的主键来考虑显示哪些按钮。如果该值为空,则意味着您要创建新记录(也因为创建按钮/链接未发送 PK)。如果发送了所述 PK(通过编辑按钮/链接),那么您将让页面识别它并隐藏创建按钮,而是显示编辑按钮。

【讨论】:

    【解决方案2】:

    您可以在一个页面上有多个区域;每桌一个区域。然后使用动态操作来显示/隐藏区域并根据用户选择的表名运行选择查询。

    1. 从下拉列表或列表中选择表名
    2. 显示与表名匹配的区域(动态操作)
    3. 隐藏任何其他可见区域(动态操作)
    4. 刷新选定区域以加载数据(动态操作)

    如果这个想法可行,请告诉我,我可以提供更多指导。

    【讨论】:

    • 谢谢@Grasshopper!这可能很有希望,但我们的数据库架构师可能已经通过数据库架构中的父/子关系找到了解决方法。
    【解决方案3】:

    出于报告目的,您可以使用作为返回查询的函数的源(即SELECT 语句)。这样做,您将动态地决定从哪个表中选择。

    但是,DML 并不是那么简单。您应该编写自己的进程,而不是 default 行处理,以便在正确的表中插入/更新/删除行。我从来没有这样做过,但我会说这是可能的。基本上,您会将所有逻辑保存在数据库中(例如,一个包)并从您的 Apex 应用程序中调用这些过程。

    【讨论】:

    • 谢谢@Littlefoot!我确实考虑过这种方法并将考虑它。我试图看看是否有其他方法可以保持默认的 DML 处理。再次感谢您的帖子。
    猜你喜欢
    • 2014-03-28
    • 1970-01-01
    • 2020-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    相关资源
    最近更新 更多