# 同一アプリでのテーブル連動について

**URL:** <https://community.cybozu.dev/t/topic/7410>\
**Category:** kintone 開発相談\
**Created:** [2021 年 3 月 4 日午前 2:28 UTC](https://community.cybozu.dev/t/topic/7410 "2021-03-04T02:28:10Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account1458](https://avatars.discourse-cdn.com/v4/letter/l/85f322/32.png) [@Legacy\_Account1458](https://community.cybozu.dev/u/Legacy_Account1458)\
**Post date:** [2021 年 3 月 4 日午前 2:28 UTC](https://community.cybozu.dev/t/topic/7410/1 "2021-03-04T02:28:10Z")

</div>

下記の様な動作を行いたいのですが、上手くいきません。  
①については、動作するのですが、②が動作しません。  
ご教示願います。

①Aテーブルの『発送』にチェックを付けた場合には、  
Bテーブルのに会社名等を追加

②Aテーブルの『発送』にチェックを外した場合には、  
Bテーブルの該当行を削除

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2021 年 3 月 5 日午前 1:48 UTC](https://community.cybozu.dev/t/topic/7410/2 "2021-03-05T01:48:12Z")

</div>

kintone\_TS44さん

お世話になっております．

Bテーブルの行のうち，発送\_IDがチェックボックスを外した行のIDと一致するものを削除するという実装が良いのではないでしょうか．

もしよろしければ，書かれたコードをご提示いただけるとより適切なコメントができるかと思います．

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1458](https://avatars.discourse-cdn.com/v4/letter/l/85f322/32.png) [@Legacy\_Account1458](https://community.cybozu.dev/u/Legacy_Account1458)\
**Post date:** [2021 年 3 月 5 日午前 2:00 UTC](https://community.cybozu.dev/t/topic/7410/3 "2021-03-05T02:00:14Z")

</div>

江田様へ

ご回答誠にありがとうございます。

下記がコードとなりますが、Aテーブルのチェックボックス(DM)の値がONになったら、  
Bテーブルにデータを追加するところまで出来ていますが、  
Aテーブルのチェックボックス(DM)の値がOFFになった場合の実装が出来ていません。  
ご教示頂ければ幸いです。

```
(function () {
"use strict";

const events = ['app.record.create.change.DM','app.record.edit.change.DM'];

kintone.events.on(events, function(event) {

if (event.changes.field.value.length !== 0) {

var table = event.record.発送リスト.value;
console.log("table" + table);
var id = event.changes.row.value.ID.value;
console.log("id" + id);
var office = event.changes.row.value.会社名.value;
console.log("office" + office);
var office2 = event.changes.row.value.支店支社.value;
console.log("office2" + office2);
var post = event.changes.row.value.郵便番号.value;
console.log("post" + post);
var address = event.changes.row.value.都道府県.value;
console.log("address" + address);
var address2 = event.changes.row.value.住所1.value;
console.log("address2" + address2);
var address3 = event.changes.row.value.住所2.value;
console.log("address3" + address3);

var newRow = {
"value": {
"発送ID" : {"type": "NUMBER", "value": id},
"発送会社名" : {"type": "SINGLE_LINE_TEXT", "value": office},
"発送支店支社": {"type": "SINGLE_LINE_TEXT", "value": office2},
"発送郵便番号": {"type": "SINGLE_LINE_TEXT", "value": post},
"発送都道府県": {"type": "SINGLE_LINE_TEXT", "value": address},
"発送住所1" : {"type": "SINGLE_LINE_TEXT", "value": address2},
"発送住所2" : {"type": "SINGLE_LINE_TEXT", "value": address3},
}
};

table.push(newRow);
return event;
}
});

})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1740](https://avatars.discourse-cdn.com/v4/letter/l/ed8c4c/32.png) [@Legacy\_Account1740](https://community.cybozu.dev/u/Legacy_Account1740)\
**Post date:** [2021 年 3 月 5 日午前 2:22 UTC](https://community.cybozu.dev/t/topic/7410/4 "2021-03-05T02:22:15Z")

</div>

kintone\_TS44さん

下記のコードで実装できるかと思います．  
動作確認まではしておりませんが…

```
(function () {
  "use strict";
  const events = ['app.record.create.change.DM', 'app.record.edit.change.DM'];
  kintone.events.on(events, function (event) {
    var table = event.record.発送リスト.value;
    console.log("table" + table);
    var id = event.changes.row.value.ID.value;
    console.log("id" + id);
    var office = event.changes.row.value.会社名.value;
    console.log("office" + office);
    var office2 = event.changes.row.value.支店支社.value;
    console.log("office2" + office2);
    var post = event.changes.row.value.郵便番号.value;
    console.log("post" + post);
    var address = event.changes.row.value.都道府県.value;
    console.log("address" + address);
    var address2 = event.changes.row.value.住所1.value;
    console.log("address2" + address2);
    var address3 = event.changes.row.value.住所2.value;
    console.log("address3" + address3);

    if (event.changes.field.value.length !== 0) {
      var newRow = {
        "value": {
          "発送ID": { "type": "NUMBER", "value": id },
          "発送会社名": { "type": "SINGLE_LINE_TEXT", "value": office },
          "発送支店支社": { "type": "SINGLE_LINE_TEXT", "value": office2 },
          "発送郵便番号": { "type": "SINGLE_LINE_TEXT", "value": post },
          "発送都道府県": { "type": "SINGLE_LINE_TEXT", "value": address },
          "発送住所1": { "type": "SINGLE_LINE_TEXT", "value": address2 },
          "発送住所2": { "type": "SINGLE_LINE_TEXT", "value": address3 },
        }
      };
      table.push(newRow);
    } else {
      event.record.発送リスト.value = table.filter(function(row){
        return row.value.発送ID.value !== id;
      });
    }
    return event;
  });
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account1458](https://avatars.discourse-cdn.com/v4/letter/l/85f322/32.png) [@Legacy\_Account1458](https://community.cybozu.dev/u/Legacy_Account1458)\
**Post date:** [2021 年 3 月 5 日午前 2:32 UTC](https://community.cybozu.dev/t/topic/7410/5 "2021-03-05T02:32:06Z")

</div>

江田様

ご回答誠にありがとうございます。

無事、実装する事が出来ました。

&nbsp;
