フィールドの装飾をしてみよう
kintoneのレコードのフィールドの文字色や背景色を変更するといった、フィールドを装飾するユースケースはよくあります。
たとえば、条件付き書式のように特定の条件に一致したときだけフィールドのスタイルを変更するといった例です。
kintoneにはフィールドの装飾に対応するためのkintone JavaScript APIが用意されています。
今回は、kintone JavaScript APIを使ってkintoneのフィールドを装飾する方法や、DOM操作によるkintoneアップデートへの影響について学びます。
カスタマイズを適用するアプリ
アプリストアの 総務への依頼受付 を使います。
フィールドのスタイルを変更するまでの処理の流れ
レコードのフィールドのスタイルを変更したい場合、次の流れで処理を実装します。
- kintone JavaScript APIを使って、フィールドのHTML要素を取得する。
- 取得したHTML要素の
style
プロパティを変更する。
とてもシンプルですね。
レコード詳細画面でフィールドのスタイルを変更する
それでは、レコード詳細画面でフィールドのスタイルを変更する方法を見ていきましょう。
実装するのは、レコード詳細画面を表示した後に、チェックボックスフィールド(フィールドコード:Urgent
)の文字色を変更するカスタマイズです。
条件付き書式のように、チェックボックスの値に「至急」が選択されていたら、フィールドの文字を赤色かつ太字に変更します。
|
|
このカスタマイズを適用すると、レコード詳細画面で、「至急」フィールドの「至急」の文字が赤色かつ太文字に変わります。
このカスタマイズのポイントは次の2つです。
- レコード詳細画面のフィールド要素を取得するAPIを使って、フィールドのHTML要素を取得する。
style
プロパティを使ってスタイルを変更する。
レコード詳細画面のフィールド要素を取得するAPIを使って、フィールドのHTML要素を取得する
レコード詳細画面で特定のフィールドのHTML要素を取得するには、
レコード詳細画面のフィールド要素を取得するAPI
のkintone.app.record.getFieldElement()
を使います。
APIの引数には、HTML要素を取得したいフィールドのフィールドコードを指定します。
|
|
style
プロパティを使ってスタイルを変更する
kintone.app.record.getFieldElement()
の戻り値は、フィールドのHTML要素です。
スタイルの変更は、取得したHTML要素のstyle
プロパティを使って行います。
- 文字色の変更:
color
にカラーコードを指定する。 - 太文字:
fontWeight
にbold
を指定する。
|
|
レコード一覧画面でフィールドのスタイルを変更する
次に、レコード一覧画面でフィールドのスタイルを変更する方法を見ていきましょう。
実装するのは、レコード一覧を表示した後に、ステータスフィールド(フィールドコード:ステータス
)の文字色を変更するカスタマイズです。
ステータスフィールドの値によって背景色を変更します。
なお、ステータスフィールドは、プロセス管理を有効化することで利用できます。
有効化にする手順は、次のヘルプページを参照してください。
kintoneヘルプ:基本的なプロセス管理を設定する
|
|
このカスタマイズを適用すると、レコード一覧画面で、ステータスの値によって「ステータス」フィールドの背景色が変わります。
このカスタマイズのポイントは次の2つです。
- レコード一覧画面のフィールド要素を取得するAPIを使って、フィールドのHTML要素を取得する。
- 繰り返し処理を使って取得した要素のスタイルを変更する。
レコード一覧画面のフィールド要素を取得するAPIを使って、フィールドのHTML要素を取得する
レコード一覧画面で、特定のフィールドのHTML要素を取得するには、
レコード一覧画面のフィールド要素を取得するAPI
のkintone.app.getFieldElements()
を使います。
APIの引数には、HTML要素を取得したいフィールドのフィールドコードを指定します。
|
|
繰り返し処理を使って取得した要素のスタイルを変更する
レコード詳細画面で使用したAPIとの大きな違いは、kintone.app.getFieldElements()
の戻り値がフィールドのHTML要素の配列になっていることです。
そのため、繰り返し処理を使って取得したHTML要素のスタイルを変更します。
背景色を変更するには、取得したHTML要素のstyle
プロパティのbackgroundColor
に、カラーコードを指定します。
|
|
DOM操作とkintoneアップデートの影響
JavaScriptに馴染みがある人は、document.querySelector()
などのブラウザーのAPIを使ってkintone製品のHTMLのクラス名を指定し、HTML要素を取得する方法を思い付くかもしれません。
いわゆるDOM操作と呼ばれる方法です。
しかし、DOM操作はkintoneのアップデートに影響を受けやすくなるリスクを伴っています。
kintoneのアップデートで、製品のHTMLの構造が変更される可能性もあるからです。
たとえば、document.querySelector()
で製品のHTMLのクラス名を指定していると、アップデートで製品のHTMLのクラス名が変わった場合にHTML要素を取得できなくなります。
スタイル変更が効かなくなるほか、実装方法によってはJavaScriptの実行時にエラーが発生して、カスタマイズ全体が動かなくなることもあります。
アップデートの影響を受けにくいカスタマイズを行うには、kintone APIドキュメントに記載されている方法で実装することが重要です。
たとえば、kintoneの画面のHTML要素を取得するAPIの一覧は、次のページで確認できます。
kintone JavaScript API|要素の取得
フィールド要素の場合には、スタイル変更のみがAPIドキュメントに準じた方法です。
補足
アップデートの影響を受けにくいカスタマイズの詳細は、次の記事を参考にしてください。
そのカスタマイズ大丈夫? アップデートの影響を受けにくいカスタマイズTips
まとめ
今回は、kintone JavaScript APIを使ってフィールドのスタイルを変更する方法や、DOM操作によるkintoneアップデートへの影響について学びました。
フィールドを装飾することで、ユーザーが見落としてしまいがちな情報を強調表示できます。
また、アップデートの影響を受けにくいカスタマイズ方法は、kintoneカスタマイズを行う上で重要なポイントです。
「ある日突然カスタマイズが動かなくなった!」を防ぐためにも、DOM操作のリスクを理解しておきましょう。
次回は、 レコード詳細画面にボタンを配置してみよう について学習しましょう。