対話グリッドの静的IDとしてempが設定が設定されているとします。
ページ・プロパティのJavaScriptのページ・ロード時に実行に以下のコードを記述します。これで単一行ビューのアクション・メニューからRefreshが除かれます。
ページを実行すると、Refreshがなくなっていることが確認できます。
アクションのデータのリフレッシュはこちらです。
アクションのセレクションのリフレッシュです。
対話グリッドの静的IDとしてempが設定が設定されているとします。
ページ・プロパティのJavaScriptのページ・ロード時に実行に以下のコードを記述します。これで単一行ビューのアクション・メニューからRefreshが除かれます。
ページを実行すると、Refreshがなくなっていることが確認できます。
アクションのデータのリフレッシュはこちらです。
アクションのセレクションのリフレッシュです。
Oracle APEXを開発しているTim Kimberlさんが、先日のOffice Hour - Deep Dive: Universal theme in APEX 21.1にてGoogle Fontsを使用する方法を紹介しています。
たまに違うフォントを使いたいと思うことはあります。試しにGoogle Fontsに含まれている日本語フォントのNoto Sans JPとNoto Serif JPを使ってみました。以下に行った作業を記載します。
最初にGoogle Fontsのページを開き、使用するフォントを選びます。
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&family=Noto+Serif+JP:wght@400;700&display=swap');
Universal Themeについて調べていて、Menu Popupという実装を知りました。Universal Themeのサンプル・アプリケーションに含まれています。以下のような動作をするボタンを作ることができます。
以下の手順で実装します。
最初に共有コンポーネントのリストを作成します。
テンプレート・ディレクティブを使った設定ではなく、JavaScriptで単一行ビューの項目の色を変更する処理を実装してみました。部門番号(DEPTNO)に依存して従業員名(ENAME)の色を変更します。こちらの記事で作成したアプリケーションに機能を追加しています。
実装はしてみましたが、テンプレート・ディレクティブを使った方が実装としては良いでしょう。JavaScriptによるカスタム実装の場合、現状で年に2回発生するOracle APEXのアップデートの際に、毎回処理に影響がないことを確認しないといけません。
そういった点は置いておいて、せっかく調べたので純粋に技術的な観点で実装方法を紹介します。
単一行ビューに切り替わる場合、大抵は行が選択されています。なので、選択の変更のタイミングで動的アクションを実行します。
最初に対話グリッドに静的IDを設定します。静的IDはempとします。
対話グリッドの単一ビューのレイアウトを調整する方法がありました。以下に紹介します。
表示のみの場合での単一ビューの表示です。
編集モードのときの表示の例です。
function(options){
options.defaultGridColumnOptions = {
cellTemplate: '{case DEPTNO/}{when 10/}<div class="u-danger-text">&EMPNO.</div>{when 20/}<div class="u-warning-text">&EMPNO.</div>{when 30/}<div class="u-success-text">&EMPNO.</div>{otherwise/}&EMPNO.{endcase/}',
fieldColSpan: 2,
};
return options;
}
function(options){
options.defaultGridColumnOptions = {
fieldCssClasses: "u-bold",
fieldColSpan: 6
};
return options;
}
function(options){
options.defaultGridColumnOptions = {
fieldColSpan: 4
};
return options;
}
function(options){
options.defaultGridColumnOptions = {
fieldColSpan: 3
};
return options;
}
function(config) {
config.defaultSingleRowOptions = {
formCssClasses: "u-Form--labelsAbove u-Form--stretchInputs"
};
return config;
}
.a-RV .u-Form.u-Form--labelsAbove .u-Form-labelContainer {
text-align: left !important;
}