リージョンの属性にカスタマイズ可能というものがあります。エンドユーザーではカスタマイズ不可、デフォルトでカスタマイズ可能および表示、デフォルトでカスタマイズ可能および非表示のどれかを選ぶことができます。
以下のように、チャートのリージョンが2つあるページがあります。
ページ・デザイナを開き、リージョンJobとSalを選択します。カスタマイズのカスタマイズ可能にデフォルトでカスタマイズ可能および表示を選択します。
変更を保存し、ページを実行するとフッターにカスタマイズというリンクが表示されます。
カスタマイズ可能にデフォルトでカスタマイズ可能および非表示を選んだ場合は、リージョンは初期状態で非表示になります。
カスタマイズをクリックすると、リージョン表示のカスタマイズを行うダイアログが表示されます。現在表示されているリージョン、SalとJobはハイライト表示されています。
JobとSalをクリックします(ハイライトされなくなります)。表示の対象外にして、変更の適用をクリックします。
プリファレンスがユーザー〇〇用に変更されました。と表示され、リージョンが非表示になりました。サーバーでの処理なので、HTML自体が生成されていません。
リージョンの表示/非表示を行う条件は、ユーザーのプリファレンスとして保存されています。プリファレンスの確認は、管理のサービスの管理から行います。
画面右のメタデータの管理より、セッション・ステートを開きます。
プリファレンスの管理のユーザー別のプリファレンスを開きます。
特定のユーザーに限定するようフィルタを設定します。次にDISPLAY_CUSTOMIZED_REGIONを名前に含むプリファレンスを選択します。
DISPLAY_CUSTOMIZED_REGION_F<APP_ID>_P<PAGE_ID>_<REGION_ID>
プリファレンスは、タイプがユーザー・プリファレンスのプロセスによって設定することができます。設定のタイプはSet to Item ValueまたはSet to Item Value If Not Nullです。
プリファレンスの削除には、設定のタイプとしてReset Preferences (remove all preferences for current user)を選ぶことができます。
プリファレンスは、APEX_UTIL.GET_PREFERENCE、APEX_UTIL.SET_PREFERENCE、APEX_UTIL.REMOVE_PREFERENCEなどのAPIより操作することもできます。
例えば以下のようにSET_PREFERENCEを呼び出すことにより、ユーザーがAPEXDEV、アプリケーションIDが250、ページIDが2のページにあるリージョンIDが65898576107487319のリージョンを非表示に変えることができます。
begin
apex_util.set_preference(
p_preference => 'DISPLAY_CUSTOMIZED_REGION_F250_P2_65898576107487319'
,p_value => 'N'
,p_user => 'APEXDEV'
);
end;
APEXビューから参照する場合は、APEX_WORKSPACE_PREFERENCESを検索します。
select preference_name, preference_value from apex_workspace_preferences
where user_name = 'APEXDEV' and preference_name like 'DISPLAY_CUSTOMIZED_REGION%'
リージョンの表示/非表示を制御するプリファレンスが作成済みの場合、カスタマイズ可能をデフォルトでカスタマイズ可能および表示やデフォルトでカスタマイズ可能および非表示に変更しても、リージョンの表示/非表示に影響を与えません。すでに保存されているプリファレンスの値が参照されるためです。
リージョンのカスタマイズ可能についての紹介は以上になります。
Oracle APEXのアプリケーション作成の参考になれば幸いです。
完