フォーム内に追加したテーブルに、JavaScriptで行を新規追加した場合に1行目から値がセットされるようにしたい

標題のとおり、フォーム内に追加したテーブルには複数の項目があり、これをJavaScriptで取得した外部ファイル内の値をセットする処理を作成していますが、画像のとおり、2行目から追加されてしまいます。1行目から追加する方法はあるでしょうか?

 

処理は、下記ドキュメントを参考に作成しています。

「はじめようJavaScript第16回 kintone JavaScriptカスタマイズのプログラム実例を学ぼう④(テーブル操作)」https://developer.cybozu.io/hc/ja/articles/360027244231 

<実際のコード(項目が多いため途中は割愛)>

  1. const record = kintone.app.record.get().record;
  2. record.テーブル名.value.push({
  3. value: {
  4. “履歴番号”: {
  5. type: 'NUMBER',
    
  6. value: '',
    
  7. },
  8. “登録番号”: {
  9. type: 'NUMBER',
    
  10. value: セットする値,
    
  11. },
  12. “登録種別”: {
  13. type: 'DROP\_DOWN',
    
  14. value: セットする値,
    
  15. },
  16. }
  17. }
  18. });
  19. resetRowNo(record);
  20. kintone.app.record.set({record: record});
  21.  
  22. // 履歴番号更新関数
  23. function resetRowNo(record) {
  24. record.テーブル名.value.forEach(function(row, i) {
  25. row.value.履歴番号.value = i + 1;
  26. });
  27. }

 

テーブルに最初からある1行目をクリアする処理を最初に追加してはいかがでしょうか。

const record = kintone.app.record.get().record;

record.テーブル名.value = []; // ←これを追加

record.テーブル名.value.push({

PV様

早速の回答ありがとうございました。

処理を試したところ、意図通り反映できました。

ただし、必ずクリアされてしまうため、2行目以降を追加すると、当然ですが、追加されずに上書きされてしまいます。

連続して2レコードを登録する場合や、一度フォームから保存して、再度編集して2レコード目を追加する場合の処理について引き続き検討します。

以上、ありがとうございました。