新規投稿
フォローする

テーブル内の特定のフィールドの値による背景色の変更

ご質問させてください。

レコード詳細画面内のに配置されているテーブル内の特定のフィールドに、値に応じて背景色を設定したいのですが、うまくいきません。

また、テーブルが追加されるたびに新しいテーブルにも同じ条件で背景色の変更を設定したいです。

kintoneをきっかけにjsを触り始めたので、なかなか理解が追い付かず難航しております。

とりあえず、下記の内容で特定のテーブルの背景色の変更を試してみましたが、うまくいきませんでした。
※下記はテーブル全体の背景色を変更しようとしている内容だと思うのですが、
 実際はテーブル内の特定のフィールドのみ背景色を変更したいと考えています。

皆様のお知恵をお借りできれば幸いです。よろしくお願いします。

 

(function(){

 "use strict";
 kintone.events.on("app.record.detail.show", function(event){

  //フィールドコード"テーブル"のレコードオブジェクトを取得
  const tablerecord = event.record.テーブル.value;
  const PUitem = tablerecord[0].value.理解度.value;

  console.log(PUitem);

  //フィールドコード"テーブル"のフィールド要素を取得
  const table = kintone.app.record.getFieldElement("テーブル");

  console.log(table);

  if(PUitem === 1){
   table.style.backgroundColor = "#ffffff";
  } else if (PUitem === 2) {
   table.style.backgroundColor = "#ffc0cb";
  } else if (PUitem === 4) {
   table.style.backgroundColor = "#0000ff";
  }else if (PUitem === 5) {
   table.style.backgroundColor = "#008000";
  }

 });
})();

0

4件のコメント

Avatar
akika

 マツ 様

以下のように、コードを変更してみて動きました。

修正前:

if(PUitem === 1){
   table.style.backgroundColor = "#ffffff";

修正後:

if(PUitem === "1"){
   table.style.backgroundColor = "#00f";

 

取得したPUitemの値が文字列?のため、 "1"のようにクォーテーションをつけないといけないと思います。

1
Avatar
マツ

akika様

ありがとうございます。文字列だったのですね。

無事テーブルの背景色の変更ができました。

 

もし可能であれば、この背景色の変更を値を取得したテーブルの特定のフィールド部分(PUitemの値を取得した部分)のみに

行いたいのですが可能でしょうか。

0
Avatar
akika

マツ 様

テーブルのフィールドの要素を取得できるAPIはありません。
kintone の HTML を直接弄ることになるので、kintone の今後のアップデートで動かなくなる可能性がありますが
以下の投稿は参考になるかと思います。

https://developer.cybozu.io/hc/ja/community/posts/900001062446/comments/900000394146

https://developer.cybozu.io/hc/ja/community/posts/360041567291

 

1
Avatar
マツ

akika様

そうなんですね…。ありがとうございます。

一度考え直してみます…。

0
サインインしてコメントを残してください。