我们的数据库中有一些表具有相同的属性,但每个表的名称不同。我不确定建筑师以这种方式创建它们的初衷,但这是我必须要处理的。
我对所有Oracle APEX专业开发人员的问题:是否可以创建一个可重用的页面,以便将表名传递给该页面,并且该表名将用于该页面的报告区域和DML处理中?
我已经阅读了模板和插件,看不到这些选项的前进方向。当然,我是Web开发的新手,请原谅我的无知。
我们正在使用版本18.2。
谢谢, 布莱恩
答案 0 :(得分:2)
出于报告目的,您可以使用源,该源是返回查询的函数(即SELECT
语句)。这样做,您可以动态决定要从哪个表中进行选择。
但是,DML并不是那么简单。代替 default 行处理,您应该编写自己的进程,以便在正确的表中插入/更新/删除行。我从来没有做过,但我想这是可能的。基本上,您会将所有逻辑保留在数据库中(例如,一个包),然后从Apex应用程序中调用这些过程。
答案 1 :(得分:0)
您可能在一页上有多个区域;每张桌子一个区域。然后,使用动态操作显示/隐藏区域,并根据用户选择的表名称运行选择查询。
如果这个想法可行,请告诉我,我可以提供更多指导。
答案 2 :(得分:0)
我从未尝试过使用报告,但是将所有三个报告放在一个页面中并通过Item设置它们以具有服务器端条件来决定在页面中显示什么会起作用吗?您可能需要具有确定值的单独项目,页面才能识别和显示。
我知道我这样做是为了动态设置诸如“删除”,“保存”和“创建”之类的按钮,而不是创建两个或多个单独的页面来处理某些信息的编辑。在这种情况下,它基于将报告的主键发送给所述“编辑”页面来考虑显示哪些按钮。如果该值为空,则意味着您要创建一个新记录(也是因为创建按钮/链接未发送任何PK)。如果说的PK是通过编辑按钮/链接发送的,那么您将让页面识别出它并隐藏创建按钮,而是显示编辑按钮。