# サブテーブルに登録された行数を5行まで増やす

**URL:** <https://community.cybozu.dev/t/topic/9897>\
**Category:** kintone 開発相談\
**Created:** [2024 年 12 月 26 日午前 8:20 UTC](https://community.cybozu.dev/t/topic/9897 "2024-12-26T08:20:28Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![K\_S](https://avatars.discourse-cdn.com/v4/letter/k/cdc98d/32.png) [@K\_S](https://community.cybozu.dev/u/K_S)\
**Post date:** [2024 年 12 月 26 日午前 8:20 UTC](https://community.cybozu.dev/t/topic/9897/1 "2024-12-26T08:20:28Z")

</div>

サブテーブルが2つ作成しているアプリがあります。印刷設定の関係で、それぞれのサブテーブルの行数を5行にしたいです。  
下記スクリプトを登録してみたのですが、エラーが解決されません。どのように修正したらよいか、お教えください。  
※フィールドコードは何度も間違っていないことを確認済みです。  
無料のプラグインを利用していて、別のアプリからサブテーブルをコピーするようにしています。  
このコードはレコードを保存するときに実行するように設定しています。  
※初心者ですので、基本的なコードの意味はわかってません。

【実行したレコード状況】  
サブテーブルには2行分のデータが含まれています。  
「Package」の列は、空欄の場合もあります。  
※通常、1行以上入力された状態で保存します。

【登録したスクリプト】  
(function () {  
“use strict”;

```
// イベント: レコードが保存される前の処理
kintone.events.on('app.record.edit.submit', function (event) {
    var record = event.record;

    // サブテーブル① (Productlist) の行数を取得
    var table1 = record['Productlist'].value;
    // サブテーブル② (Productlist_0) の行数を取得
    var table2 = record['Productlist_0'].value;

    // サブテーブル① (Productlist) の行数が5未満の場合に空行を追加
    while (table1.length < 5) {
        table1.push({
            value: {
                Tableno: { value: "" },
                Brand: { value: "" },
                Productname: { value: "" },
                Color: { value: "" },
                Package: { value: "" },
                Quantity: { value: 0 }, // 数値フィールドには0
                Unitprice: { value: 0 }, // 数値フィールドには0
                Price: { value: 0 }, // 数値フィールドには0
            }
        });
    }

    // サブテーブル② (Productlist_0) の行数が5未満の場合に空行を追加
    while (table2.length < 5) {
        table2.push({
            value: {
                Tableno_0: { value: "" },
                Brand_0: { value: "" },
                Productname_0: { value: "" },
                Color_0: { value: "" },
                Package_0: { value: "" },
                Quantity_0: { value: 0 }, // 数値フィールドには0
                Unitprice_0: { value: 0 }, // 数値フィールドには0
                Price_0: { value: 0 }, // 数値フィールドには0
            }
        });
    }

    // 両方のサブテーブルを更新
    record['Productlist'].value = table1;
    record['Productlist_0'].value = table2;

    return event;
});

```

})();

【エラーの内容】

- 
  - event.record[‘Productlist’].value[2][‘Tableno’].type が不正です。

- 
  - event.record[‘Productlist’].value[2][‘Brand’].type が不正です。

- 
  - event.record[‘Productlist’].value[2][‘Productname’].type が不正です。

- 
  - event.record[‘Productlist’].value[2][‘Color’].type が不正です。

- 
  - event.record[‘Productlist’].value[2][‘Package’].type が不正です。

- 
  - event.record[‘Productlist’].value[2][‘Quantity’].type が不正です。

- 
  - event.record[‘Productlist’].value[2][‘Unitprice’].type が不正です。

- 
  - event.record[‘Productlist’].value[2][‘Price’].type が不正です。

- 
  - event.record[‘Productlist’].value[3][‘Tableno’].type が不正です。

- 
  - event.record[‘Productlist’].value[3][‘Brand’].type が不正です。

- 
  - event.record[‘Productlist’].value[3][‘Productname’].type が不正です。

- 
  - event.record[‘Productlist’].value[3][‘Color’].type が不正です。

- 
  - event.record[‘Productlist’].value[3][‘Package’].type が不正です。

- 
  - event.record[‘Productlist’].value[3][‘Quantity’].type が不正です。

- 
  - event.record[‘Productlist’].value[3][‘Unitprice’].type が不正です。

- 
  - event.record[‘Productlist’].value[3][‘Price’].type が不正です。

- 
  - event.record[‘Productlist’].value[4][‘Tableno’].type が不正です。

- 
  - event.record[‘Productlist’].value[4][‘Brand’].type が不正です。

- 
  - event.record[‘Productlist’].value[4][‘Productname’].type が不正です。

- 
  - event.record[‘Productlist’].value[4][‘Color’].type が不正です。

- 
  - event.record[‘Productlist’].value[4][‘Package’].type が不正です。

- 
  - event.record[‘Productlist’].value[4][‘Quantity’].type が不正です。

- 
  - event.record[‘Productlist’].value[4][‘Unitprice’].type が不正です。

- 
  - event.record[‘Productlist’].value[4][‘Price’].type が不正です。

- 
  - event.record[‘Productlist\_0’].value[2][‘Tableno\_0’].type が不正です。

- 
  - event.record[‘Productlist\_0’].value[2][‘Brand\_0’].type が不正です。

- 
  - event.record[‘Productlist\_0’].value[2][‘Productname\_0’].type が不正です。

- 
  - event.record[‘Productlist\_0’].value[2][‘Color\_0’].type が不正です。

- 
  - event.record[‘Productlist\_0’].value[2][‘Package\_0’].type が不正です。

- 
  - event.record[‘Productlist\_0’].value[2][‘Quantity\_0’].type が不正です。  
※ 以下続く・・・

---

<div class="post-metadata">

**Author:** ![puppet](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/puppet/32/2126_2.png) [@puppet](https://community.cybozu.dev/u/puppet)\
**Post date:** [2024 年 12 月 27 日午前 2:15 UTC](https://community.cybozu.dev/t/topic/9897/2 "2024-12-27T02:15:39Z")

</div>

基本的なコードが不明との事ですので、[フィールド形式の記述方式](https://cybozu.dev/ja/kintone/docs/overview/field-types/)や[編集画面でのサブテーブルの取り扱い方法](https://yourkinlife.com/kintone-customize-javascript-subtable/)などを中心に学習を進めるのが良いと思います！

すぐに解決したい！という事であれば、[こちらのページ](https://qiita.com/goriland/items/22bdb8adb5335796d01a)が参考になると思います。

---

<div class="post-metadata">

**Author:** ![K\_S](https://avatars.discourse-cdn.com/v4/letter/k/cdc98d/32.png) [@K\_S](https://community.cybozu.dev/u/K_S)\
**Post date:** [2024 年 12 月 27 日午前 4:28 UTC](https://community.cybozu.dev/t/topic/9897/3 "2024-12-27T04:28:50Z")

</div>

ありがとうございます。  
お教えいただいたページは見ていたのですが、必要行数などは入力せず、保存時に自動的に行を追加するようなスクリプトにしたいです。  
記述方法などは少しずつ勉強中なのですが、少しでも早く実装したくて、質問させていただきました。  
どうしたら修正できるか、想定される修正方法をお教えいただきたいです。

---

<div class="post-metadata">

**Author:** ![puppet](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/puppet/32/2126_2.png) [@puppet](https://community.cybozu.dev/u/puppet)\
**Post date:** [2024 年 12 月 27 日午前 6:25 UTC](https://community.cybozu.dev/t/topic/9897/4 "2024-12-27T06:25:39Z")

</div>

すべて記載するのはコミュニティの運営上よくないようですので一部になりますが、

```javascript
        table1.push({
            value: {
                // ～
                Quantity: { value: 0 },
                // ～
            }
        });

```

を

```javascript
        table1.push({
            value: {
                // ～
                Quantity: {
                    value: "0",
                    type: "NUMBER"
                },
                // ～
            }
        });

```

に変更してみる、とかですかね？

正解というよりは「自分ならまずここを疑う」という箇所の修正提案になりますが。

---

<div class="post-metadata">

**Author:** ![K\_S](https://avatars.discourse-cdn.com/v4/letter/k/cdc98d/32.png) [@K\_S](https://community.cybozu.dev/u/K_S)\
**Post date:** [2024 年 12 月 27 日午前 8:46 UTC](https://community.cybozu.dev/t/topic/9897/5 "2024-12-27T08:46:37Z")

</div>

ありがとうございます！ 🙇‍♀️  
一度試してみます。

---

<div class="post-metadata">

**Author:** ![fito12](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/fito12/32/1541_2.png) [@fito12](https://community.cybozu.dev/u/fito12)\
**Post date:** [2025 年 1 月 4 日午前 8:52 UTC](https://community.cybozu.dev/t/topic/9897/6 "2025-01-04T08:52:21Z")

</div>

コードの勉強されているかたに、大変失礼とは思いますが

> 少しでも早く実装したくて

とあったので、pluginでの実装テストしてみました

使ったのは、TISさんの「条件分岐処理プラグイン」です

> **[BranchProcess@TIS](https://www.tis2010.jp/branchprocess/)**
>
> 条件分岐処理プラグイン

pluginテストの設定画像添付しました．．．ご参考まで  
と書いて右側をみたら、

> 回答するときのポイント
> 
> - 質問者の学びにつながる回答を意識しましょう
> - 大まかな対応方針から回答しましょう

とあったので．．．設定場所を添付します、ご参考まで

 ![tableの自動行追加②](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/2X/7/71a841b958034d2a91b7bf1aa6f965b4075c869d.jpeg)

---

<div class="post-metadata">

**Author:** ![K\_S](https://avatars.discourse-cdn.com/v4/letter/k/cdc98d/32.png) [@K\_S](https://community.cybozu.dev/u/K_S)\
**Post date:** [2025 年 1 月 5 日午後 11:53 UTC](https://community.cybozu.dev/t/topic/9897/7 "2025-01-05T23:53:41Z")

</div>

ありがとうございます！  
条件分岐プラグインで行追加ができるのを見落としていました。  
ありがとうございます。こちらもいとど試してみます。
