2024年8月13日火曜日

ApexChartsをOracle APEXのアプリケーションに組み込む

オープンソースのチャート描画ライブラリであるApexChartsを、Oracle APEXのアプリケーションに組み込んでみます。ApexChartsの使い方自体には、ほとんど触れません。

前回の記事で、同じくオープンソースのチャート描画ライブラリであるChart.jsをOracle APEXに組み込む方法を紹介しています。それと同じチャートを、ApexChartsで表示してみます。

Chart.jsをOracle APEXに組み込む際に作成したAPEXアプリケーションをコピーし、ApexCharts向けに改変します。


直接ApexChartsで描画



最初にApexChartsを呼び出して、div要素にチャートを描画します。

jsDelivrでApexChartsを検索し、ページに組み込むスクリプトを選択します。

TypeDefaultVersionLatest Majorを選び、JavaScriptCSSそれぞれについてCopy URLを実行します。以下のURLがクリップボードにコピーされます。
https://cdn.jsdelivr.net/npm/apexcharts/dist/apexcharts.min.js
https://cdn.jsdelivr.net/npm/apexcharts/dist/apexcharts.min.css


これらのURLを、ページ・プロパティJavaScriptファイルURLCSSファイルURLに記述します。


静的コンテンツのリージョンの名前ApexChartsとし、ソースHTMLコードに以下を記述します。

<div id="myChart"></div>


チャートを描画するJavaScriptのコードを、ページ・プロパティページ・ロード時に実行に記述します。


以上で実装は完了です。ページを実行すると以下のように表示されます。



テンプレート・コンポーネントの作成



ApexChartsを使ったテンプレート・コンポーネントは、Chart.jsのテンプレート・コンポーネントとほぼ同じ手順で作成します。そのため、設定内容に絞って説明します。

テンプレート・コンポーネントの名前ApexCharts Bar Chartとしました。テンプレート部分には以下を記述しています。カスタム要素a-apexcharts-bar-chartですが、属性は今まで作成してきたテンプレート・コンポーネントと同じにしています。



カスタム属性設定Orientationは、plotOptionsbarの属性horizontalに与える真偽値になります。静的LOVhorizontalの戻り値はtrueverticalの戻り値はfalseとします。


テンプレート・コンポーネントファイルとして、ApexChartsの実体となるapexcharts.min.jsapexcharts.min.cssをアップロードします。JavaScriptのディレクトリjsCSSのディレクトリcssとします。

ディレクトリjsファイル名script.jsとして、カスタム要素a-apexcharts-bar-chartの実装を記述します。


ロードするファイルURLカスケード・スタイルシートに以下を記述します。

#PLUGIN_FILES#css/apexcharts.min.css

JavaScriptに以下を記述します。

#PLUGIN_FILES#js/apexcharts.min.js
#PLUGIN_FILES#js/script#MIN#.js


以上でテンプレート・コンポーネントは完成です。

リージョンにChart.jsのテンプレート・コンポーネントを実装しているページを開きます。

識別名前ApexChartsタイプApexCharts Bar Chartsに変更します。


リージョンの属性を開き、設定GroupsとしてP2_GROUPSValueとしてP2_VALUEColorとして#309fdbOrientationとしてhorizontalを設定します。


以上で実装は完了です。ページを実行すると以下のように表示されます。




対話モード・レポートへの組み込み



対話モード・レポートの列CHARTを選択し、識別タイプApexCharts Bar Chartsに変更します。

設定CSS Classesw400Groupsに列GROUPSValueに列VALUEColor#309fdbOrientationhorizontalを指定します。


以上で実装は完了です。ページを実行すると以下のように表示されます。


JavaScriptコンソールを開くとApexChartsからエラーが発生していることが確認できます。ApexChartsの設定が最低限であるため、必要な設定が足りていない模様です。


今回の記事は以上になります。

作成したAPEXアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/integrating-apexcharts.zip

Oracle APEXのアプリケーション作成の参考になれば幸いです。