レコード編集画面にて、テーブル内のインプットフィールドの隣に▼を表示させ、押下したら既に追加済みの下の行に値をコピーしたいです。
行の追加ではなくコピーだけの機能なのですが、以下の記事を参考に行分インプット横に▼を表示させるところまで挑戦してみましたがうまくいきません。
アドバイスいただけると嬉しいです。
テーブルに明細行を追加する際にデータをコピーして表示する方法
イメージは、Excelは下方向にドラッグすると値を簡単に連続コピーできますがkintoneはできません。なので初期値を設定したりテーブル外のフィールド値を取得して全行に複写するやり方が主流かと思いますが、ぽちぽちとクリックするだけで下の行に必要なだけ複写できるインターフェイスがあったら便利だと思いました。
具体的には旅費精算等で数日分連続して宿舎名を記入する、といったケースです。
var events = [
“app.record.create.change.日付”, “app.record.edit.change.日付”,
“app.record.create.change.宿舎名”, “app.record.edit.change.宿舎名”,
“app.record.edit.show”,“app.record.create.show”,
“app.record.edit.change.Table”,“app.record.create.change.Table”,
];
kintone.events.on(events, function(event) {
var record = event.record;
$(“button.xp-copy-row-image-gaia”).detach();
//「.value-5676481」は宿舎名のクラス
$(‘.value-5676481 input’).each(function(index, element) {
$(‘<button type=“button” class=“xp-copy-row-image-gaia” title=“行を複写する”>▼</button>’).insertAfter(element);
$(element).parent().on(‘click’, ‘button.xp-copy-row-image-gaia’, function() {
var tr_idx = $(this).parents(‘tr’)[0].rowIndex - 1 ;
var copyFrom = record.Table.value[tr_idx].value;
var copyTo = record.Table.value[tr_idx + 1].value;
copyTo[‘宿舎名’].value = copyFrom[‘宿舎名’].value;
});
});
return event;
});