テーブル内フィールドの値をテーブル買いに表示したい

【実現したいこと】
歌舞伎の写真の資料として「資料画像データベース」というアプリを作成しました。

ひとつの演目に対し、複数の役が出演するので、役はテーブルで管理することとしました。

このテーブル(フィールド名もコードも「テーブル」)内の「役名」フィールドを、テーブル外の「全役名」フィールドに表示したいのです

図のように、「役名」が三つあり、それぞれ「舎人松王丸」「舎人桜丸」「舎人梅王丸」だった場合、「全役名」フィールドに「舎人松王丸,舎人桜丸,舎人梅王丸」とすべてのレコードを連ねて表示したいと思っています。

わかる範囲のjavascriptにて、コンソールにテーブル内のデータを表示するに至りましたが、その先がわかりません。

どうすれば表示が可能になりましょうか。

どうぞよろしくお願いいたします

コードは以下の通りです

(function() {
  'use strict';
kintone.events.on(['app.record.detail.show'], event => {

    const record = event.record;
    console.log("record\n",record.テーブル.value);


    console.log("\n役名検索");
    record.テーブル.value.forEach(r => {
        console.log(r.value.役名.value);
    });
    

    return event;
});    
})();

全役名が文字列フィールド前提ですと、
追加と編集のイベントでテーブルの役名変更を検知して、全役名にカンマ区切りで入れる形で

  (function () {

    var events = [
      'app.record.create.change.役名',
      'app.record.edit.change.役名',
    ];
    // kintone.events.on(events, function (event) { 
    kintone.events.on(events, (event) => {
      var record = event.record;

      // テーブルの名前を配列として格納
      const nameList = record["テーブル"].value.map((row) => { return row.value["役名"].value })
      // 取得した配列をカンマ区切りで結合し代入
      record["全役名"].value = nameList.join(",")

      return event;
    });
  })();

で実装できると思います。それか保存時にテーブル内の名称を結合して、全役名に入れる形でもいいかと思います。

javascript apiの各イベントについてはこちらでご確認ください。
kintone JavaScript API

1 Like

pomo様、ありがとうございます!

無事解決いたしました!

mapというメソッド、初めて知りました。
配列が返ってくるんですね。

助かりました。
本当にありがとうございました。

1 Like

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。