お世話になっております。
タイトルの件について、サブテーブルに文字列とチェックボックス(有、無)があり、
チェックボックスに「有」がついている行内の文字列をコピーボタンを押下して
他文字列へコピーしたいと考えております。
現在下記コードで設定していますが、
(function() {
"use strict";
var events = ['app.record.create.show','app.record.edit.show'];
kintone.events.on(events, function(event) {
button.onclick = function () {
var rec = kintone.app.record.get();
var record = rec.record;
record['文字列']['value'] = record['テーブル'].value[0].value['テーブル文字列'].value;
kintone.app.record.set(rec);
};
return event;
});
})();
[0]で設定しているので、1行目がコピーされます。
これを「有」のチェックをついている行内の文字列のみをコピーする方法について
ご教授いただいたければ幸いでございます。
よろしくお願いいたします。
テーブル内に複数の「有」が起き得ないのであれば、シンプルに行の分だけループして、同行内に「有」があればセットするという感じで良いかと思います。
(function () {
"use strict";
var events = ['app.record.create.show', 'app.record.edit.show'];
kintone.events.on(events, function (event) {
button.onclick = function () {
var rec = kintone.app.record.get();
var record = rec.record;
//record['文字列']['value'] = record['テーブル'].value[0].value['テーブル文字列'].value;
var table = record['テーブル'].value;
table.forEach(function(row){
if(row.value['テーブルチェックボックス'].value.indexOf('有') > -1){
record['文字列'].value = row.value['テーブル文字列'].value;
}
});
kintone.app.record.set(rec);
};
return event;
});
})();
複数の「有」が有り得るようであれば、例えば区切り文字で連結しつつ1つのフィールドのセットしてしまう次のような方法もありかと思います。
(function () {
"use strict";
var events = ['app.record.create.show', 'app.record.edit.show'];
kintone.events.on(events, function (event) {
button.onclick = function () {
var rec = kintone.app.record.get();
var record = rec.record;
var table = record['テーブル'].value;
var contents = [];
table.forEach(function(row){
if(row.value['テーブルチェックボックス'].value.indexOf('有') > -1){
contents.push(row.value['テーブル文字列'].value);
}
});
record['文字列'].value = contents.join(', '); // 区切り文字「, 」で結合
kintone.app.record.set(rec);
};
return event;
});
})();
Ryu Yamashita様
早速のご回答ありがとうございます。
ご教授いただいたように設定し、table内の値のコピーができました。
また、複数バージョンのコードも合わせてご教授いただきありがとうございます。
複数ある場合もあるので、すごく助かりました。
今後ともよろしくお願いいたします。