菜单
对于菜单,您可以创建一个动态(基于表格的)菜单,然后它可以在您的所有应用程序中使用。为了尽量减少在应用程序之间重复的 SQL,您可以将大部分隐藏在这样使用的视图中:
select menu_level
, label
, target
, is_current_list_entry
, icon
from my_dynamic_menu_view
order by seq
事实上,您可以更进一步,使用返回 SQL 查询的函数,如下所示:
return my_menu_pkg.menu_query;
全局页面
您不能在应用程序之间共享全局页面。但是,如果您想要跨应用程序的公共区域 - 例如对于公共页眉 - 您可以考虑在每个应用程序的全局页面上使用 PL/SQL 区域,其来源如下:
my_global_package.render_header_region;
该过程将使用 sys.htp.prn 调用来呈现常见的 HTML,例如
procedure render_header_region is
begin
sys.htp.prn('<div class="my-header">');
-- More stuff
sys.htp.prn('</div>');
end;
实现此目的的其他方法可能是跨应用程序共享的插件区域类型(发布/订阅),甚至是包含所有常见 HTML 的共享定制区域模板。