tat
(林)
1
【実現したいこと】
歌舞伎の写真の資料として「資料画像データベース」というアプリを作成しました。
ひとつの演目に対し、複数の役が出演するので、役はテーブルで管理することとしました。
このテーブル(フィールド名もコードも「テーブル」)内の「役名」フィールドを、テーブル外の「全役名」フィールドに表示したいのです
図のように、「役名」が三つあり、それぞれ「舎人松王丸」「舎人桜丸」「舎人梅王丸」だった場合、「全役名」フィールドに「舎人松王丸,舎人桜丸,舎人梅王丸」とすべてのレコードを連ねて表示したいと思っています。
わかる範囲の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;
});
})();
pomo
2
全役名が文字列フィールド前提ですと、
追加と編集のイベントでテーブルの役名変更を検知して、全役名にカンマ区切りで入れる形で
(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
tat
(林)
3
pomo様、ありがとうございます!
無事解決いたしました!
mapというメソッド、初めて知りました。
配列が返ってくるんですね。
助かりました。
本当にありがとうございました。
「いいね!」 1
system
(system)
クローズされました:
4
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。