お世話になっております。
タイトルの件について、ユーザー選択の値をnameで取得し、文字列へコピーを行っております。
現在下記コードで行っているのですが、複数選択された場合も1人しかコピーできない状況です。
(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 user = record['ユーザー選択']['value'][0].name || '';
record['文字列']['value'] = user;
return event;
});
})();
恐らく、ユーザー選択はvalueが配列なので、for文などを使って記述しないといけないと思っているのですが、どのように書いてよいかわからず、躓いております。
大変恐縮でございますが、ご教授いただいたければ幸いでございます。
よろしくお願いいたします。
Naoさんこんにちは。
配列を対象に繰り返し処理を書くことについては、こちらの記事等を参考にされたらいいと思いますよ。
https://developer.cybozu.io/hc/ja/articles/115003765686
基本の基本については、JavaScript for文 等で検索すれば、初心者向けの解説がたくさん出てきます。
お互いがんばりましょう!
Nao様
おそらく、こんな形で動くのではないでしょうか。文字列フィールドの種類が「複数行」であれば、カンマ区切りより改行の方が私は好みです。
組織フィールドやユーザー選択で、同じように扱えるはずです。
私の場合、CSVでダウンロードする際に code だけでなく name の値も欲しいので、こういう処理をちょこちょこやっています。
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 += ', ' ; //複数行文字列で改行するなら '\r'
}
names += record['ユーザー選択'].value[i].name;
}
record['文字列']['value'] = names;
return event;
});
milkyway0307様、Shotaro Matsuda 様
ご返信ありがとうございます。
milkyway0307様
ご教授いただいたコードにて設定が出来ました。
また、改行コード等の方法もご教授いただきありがとうございます。
今後ともよろしくお願いいたします。
system
(system)
クローズされました:
5
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。