# 関連レコード件数をフィールドに表示させリアルタイムで更新させたい

**URL:** <https://community.cybozu.dev/t/topic/9782>\
**Category:** kintone 開発相談\
**Created:** [2024 年 11 月 26 日午前 6:11 UTC](https://community.cybozu.dev/t/topic/9782 "2024-11-26T06:11:52Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![kimura](https://avatars.discourse-cdn.com/v4/letter/k/d2c977/32.png) [@kimura](https://community.cybozu.dev/u/kimura)\
**Post date:** [2024 年 11 月 26 日午前 6:11 UTC](https://community.cybozu.dev/t/topic/9782/1 "2024-11-26T06:11:52Z")

</div>

お世話になっております。今月kintoneを使い始め、javascriptなどの知識は全くない状態で躓いております。ご教示お願いいたします。

・実現したいこと  
①予約集計アプリ …予約枠の管理（定員数、予約数、残席数の表示）  
②の情報を参照して予約数のカウント・残席数の表示をしたい  
②予約情報登録アプリ …予約フォームとして利用（人ごとの予約状況の管理）  
予約する際、予約枠の定員数と残席数を関連フィールドとして表示させたい（オーバーブッキングを防ぐため）

現在、上記①アプリに②の情報を関連レコードとして表示しています。  
関連レコードの件数を①内「予約数」フィールドへ反映させることには成功しましたが、詳細画面を編集しないと最新の数字が反映しない状況です（★）

最新の予約数が②アプリにて予約時にわかるように（もしくは満席だと予約できないように）したいと思っています。

（★）現在①アプリに追加しているjsは以下です。

> **[関連レコード一覧の件数を自動カウントする方法~ JavaScriptカスタマイズ~ | 船井総研 kintone導入・運用コンサルティング](https://fastsystem.funaisoken.co.jp/digital/relatedrecords-get/)**
>
> kintoneの代表的な機能の一つに”関連レコード一覧”があります。 この機能を活用することで簡単に複数のアプ

こちらを参考にしてそのまま使わせていただいています。

```javascript
//AAAにはカウントしたい関連レコードのフィールドコードを設定
//BBBには関連レコードの条件を設定。なおBBB1には関連レコードに対応しているアプリのフィールドコードを、BBB2には関連レコードを設置しているアプリのフィールドコードを設定してください
//CCCには関連レコードの件数を表示させたいフィールドコードを設定してください

(function() {
  'use strict';
  const events = [
    'app.record.edit.show',
    'app.record.create.show',
    ];
  kintone.events.on(events, function(event) {
    const appId = kintone.app.getRelatedRecordsTargetAppId('AAA');
    const query = 'BBB1="' + event.record['BBB2'].value + '"';
    const paramGET = {
      'app' : appId,
      'query' : query,
      'totalCount' : true
    };
    kintone.api(kintone.api.url('/k/v1/records', true), 'GET', paramGET, (resp)=> {
      event.record['CCC'].value = resp.totalCount;
      kintone.app.record.set(event);
    });
    return event;
  });
})();

```

知識がなく恐縮ですが、なにとぞご教示のほどよろしくお願いいたします。

---

<div class="post-metadata">

**Author:** ![mura](https://sea1.discourse-cdn.com/flex015/user_avatar/community.cybozu.dev/mura/32/41_2.png) [@mura](https://community.cybozu.dev/u/mura)\
**Post date:** [2024 年 11 月 27 日午後 11:42 UTC](https://community.cybozu.dev/t/topic/9782/2 "2024-11-27T23:42:24Z")

</div>

> もしくは満席だと予約できないように

これが最低限必要だと思いますので、  
②のレコード保存時に①の残席数を確認して、残席数がなければエラーを出す、というような流れがいいかと思います

[レコードを保存するときのイベント](https://cybozu.dev/ja/kintone/docs/js-api/events/create/create-submit-event/)で、残席数を行ったあと、保存処理をキャンセルさせる方法・エラーを出す方法はあるのでそれを利用すると良いと思います。

> 知識がなく

方法としては上記の流れ、ということで、  
実装自体はある程度知識がないとできないとおもいます。

> **[チュートリアル](https://cybozu.dev/ja/tutorials/)**
>
> kintoneカスタマイズを始める人向けの、JavaScriptやkintone APIを学べるコンテンツです。

などをぜひ参考に学習してみてください

---

<div class="post-metadata">

**Author:** ![kimura](https://avatars.discourse-cdn.com/v4/letter/k/d2c977/32.png) [@kimura](https://community.cybozu.dev/u/kimura)\
**Post date:** [2024 年 11 月 28 日午前 2:32 UTC](https://community.cybozu.dev/t/topic/9782/3 "2024-11-28T02:32:30Z")

</div>

ご返信ありがとうございます。かしこまりました。確認いたします。
