お世話になります。
ユーザー選択フィールド(該当者)で複数選択されたユーザーを、文字列へ、『A,B,C,D』というように列記させるにはどうしたら良いでしょうか?
過去の投稿を拝見し下記を作成したところ、ユーザー名とユーザー名の間が全部つながってしまうため、カンマを入れたいです。
ご教授ください。
(function () {
“use strict”;
var events = [
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.該当者’,
‘app.record.edit.change.該当者’
];
kintone.events.on(events, function(event) {
kintone.app.record.setFieldShown(‘文字列’, false);
var record = event.record;
var names = ‘’;
for (var i in record[‘該当者’].value){
if (names !== ‘’) {
name += ', ’ ;
}
names += record[‘該当者’].value[i].name;
}
record[‘文字列’][‘value’] = names;
return event;
});
})();
該当者のnameを格納している変数がnamesなのに対し、カンマを格納しているのがnameになっているためかと思います。
また、ループせずとも以下のような書き方でも同じ結果が得られます。
record.文字列.value = record.該当者.value.map(user => user.name).join(‘,’);
すみません。IEだとアロー関数を使えないので、IEをお使いであれば以下のようになります。
record.文字列.value = record.該当者.value.map(function(user) {return user.name}).join(‘,’);
Ryoji様、アドバイスどうもありがとうございます。
教えていただいた内容を、
var record = event.record;
var names = ‘’;
for (var i in record[‘該当者’].value){
if (names !== ‘’) {
name += ', ’ ;
}
names += record[‘該当者’].value[i].name;
}
record[‘文字列’][‘value’] = names;
return event;
部分に置き換えて、
(function () {
“use strict”;
var events = [
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.該当者’,
‘app.record.edit.change.該当者’
];
kintone.events.on(events, function(event) {
kintone.app.record.setFieldShown(‘文字列’, false);
record.文字列.value = record.該当者.value.map(function(user) {return user.name}).join(‘,’);
});
})();
としてみたのですが、やはりカンマが入らない状況です。
置き換え方が悪いのでしょうか。。。
大変ご面倒かと存じますが、お教え頂ければ幸いです。
実行時にコンソールにエラーが表示されていませんでしょうか。
以下に不足部分を太字で記載しました。
(function () {
“use strict”;
var events = [
‘app.record.create.show’,
‘app.record.edit.show’,
‘app.record.create.change.該当者’,
‘app.record.edit.change.該当者’
];
kintone.events.on(events, function(event) {
var record = event.record;
kintone.app.record.setFieldShown(‘文字列’, false);
record.文字列.value = record.該当者.value.map(function(user) {return user.name}).join(‘,’);
return event;
});
})();