# 計算フィールドの値を判断してエラー表示させたい

**URL:** <https://community.cybozu.dev/t/topic/1198>\
**Category:** kintone 開発相談\
**Created:** [2022 年 12 月 1 日午前 7:55 UTC](https://community.cybozu.dev/t/topic/1198 "2022-12-01T07:55:15Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account51](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@Legacy\_Account51](https://community.cybozu.dev/u/Legacy_Account51)\
**Post date:** [2022 年 12 月 1 日午前 7:55 UTC](https://community.cybozu.dev/t/topic/1198/1 "2022-12-01T07:55:15Z")

</div>

「出発距離」と「到着距離」という数字フィールドがあり、「到着距離」から「出発距離」を引いた値を数字フィールドの「移動距離」に入れています。このとき、「移動距離」が０以下のときはエラーを表示させたいので、JavaScriptを作成したのですが、機能しません。

ちなみに、「移動距離」を「到着距離」に変更すると、正常に機能しますので、「移動距離」が無効になっているように思えます。

```
(function() {
    "use strict";
    kintone.events.on(['app.record.edit.change.到着距離'], (event) => {
        var record = event.record;
      var PG_kyori = record['移動距離']['value']; 
        if (PG_kyori <= 0 ) {
            record['移動距離'].error = '入力エラー';
        } else {
// event.error = null;
            record['移動距離'].error = 'OK';
            }
    return event;
    });
})();

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2925](https://avatars.discourse-cdn.com/v4/letter/l/7ab992/32.png) [@Legacy\_Account2925](https://community.cybozu.dev/u/Legacy_Account2925)\
**Post date:** [2022 年 12 月 1 日午前 8:05 UTC](https://community.cybozu.dev/t/topic/1198/2 "2022-12-01T08:05:06Z")

</div>

hirofu 様

こちらの

```
varPG_kyori = record['移動距離']['value']; 

```

を

```
varPG_kyori = Number(record['移動距離']['value']); 

```

に変えてみるとどうでしょうか？  
恐らく現状ですと、文字列型で値を取得されてるかと思われます。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account51](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@Legacy\_Account51](https://community.cybozu.dev/u/Legacy_Account51)\
**Post date:** [2022 年 12 月 1 日午前 8:09 UTC](https://community.cybozu.dev/t/topic/1198/3 "2022-12-01T08:09:56Z")

</div>

ご指摘の通り修正してみましたが、結果は同じでした

---

<div class="post-metadata">

**Author:** ![Legacy\_Account871](https://avatars.discourse-cdn.com/v4/letter/l/50afbb/32.png) [@Legacy\_Account871](https://community.cybozu.dev/u/Legacy_Account871)\
**Post date:** [2022 年 12 月 1 日午前 8:16 UTC](https://community.cybozu.dev/t/topic/1198/4 "2022-12-01T08:16:38Z")

</div>

「ちなみに、「移動距離」を「到着距離」に変更すると、正常に機能しますので、「移動距離」が無効になっているように思えます。」

の意味がエラーの表示させたい場所のことをいっていたのですね。

計算フィールドにはエラー表示を出せないみたいですね。

レコード追加イベント – cybozu developer network  
[https://developer.cybozu.io/hc/ja/articles/201941984#step6](https://community.cybozu.dev/hc/ja/articles/201941984#step6)

以下のフィールドは、エラー値を設定しても、フィールドにエラーは表示されません。

- （略）
- 計算

---

<div class="post-metadata">

**Author:** ![Legacy\_Account51](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@Legacy\_Account51](https://community.cybozu.dev/u/Legacy_Account51)\
**Post date:** [2022 年 12 月 1 日午前 8:19 UTC](https://community.cybozu.dev/t/topic/1198/5 "2022-12-01T08:19:35Z")

</div>

計算フィールドにはエラー表示できないのですね。  
ご指摘ありがとうございました。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2925](https://avatars.discourse-cdn.com/v4/letter/l/7ab992/32.png) [@Legacy\_Account2925](https://community.cybozu.dev/u/Legacy_Account2925)\
**Post date:** [2022 年 12 月 2 日午前 12:04 UTC](https://community.cybozu.dev/t/topic/1198/6 "2022-12-02T00:04:24Z")

</div>

数字フィールドだと書かれてあったので、数値フィールドに何かしらで計算させているのだろうと考えておりました。

移動距離フィールドを数値フィールドか文字列一行フィールドに変えていただいて、以下のようなコードで書くとできるのではないかと思われます。

```
(function() {
  "use strict";
  kintone.events.on(['app.record.edit.change.到着距離'], (event) => {
      var record = event.record;
      if(!record.出発距離.value)return;
      record.移動距離.value = Number(record.到着距離.value) - Number(record.出発距離.value);
      var PG_kyori = Number(record.移動距離.value);
      if (PG_kyori <= 0 ) {
          record.移動距離.error = '入力エラー';
      } else {
// event.error = null;
          record.移動距離.error = 'OK';
          }
  return event;
  });
  kintone.events.on(['app.record.edit.change.出発距離'], (event) => {
      var record = event.record;
      if(!record.到着距離.value)return;
      record.移動距離.value = Number(record.到着距離.value) - Number(record.出発距離.value);
      var PG_kyori = Number(record.移動距離.value);
      if (PG_kyori <= 0 ) {
          record.移動距離.error = '入力エラー';
      } else {
// event.error = null;
          record.移動距離.error = 'OK';
          }
  return event;
  });
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account51](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@Legacy\_Account51](https://community.cybozu.dev/u/Legacy_Account51)\
**Post date:** [2022 年 12 月 2 日午前 12:17 UTC](https://community.cybozu.dev/t/topic/1198/7 "2022-12-02T00:17:29Z")

</div>

[Yuki Minamitani](https://community.cybozu.dev/hc/ja/profiles/903517216706-Yuki-Minamitani)さん、ありがとうございます。

私は引き算ではなく、大小比較で実装しました

```
(function() {
    "use strict";
    kintone.events.on(['app.record.edit.change.到着距離'], (event) => {
        var record = event.record;
        var PG_start = Number(record['出発距離']['value']);
        var PG_end = Number(record['到着距離']['value']);
        if (PG_end <= PG_start ) {
            record['到着距離'].error = '入力エラー';
      } else {
            record['到着距離'].error = null;
            }
    return event;
    });
})();

```

---

<div class="post-metadata">

**Author:** ![Legacy\_Account2925](https://avatars.discourse-cdn.com/v4/letter/l/7ab992/32.png) [@Legacy\_Account2925](https://community.cybozu.dev/u/Legacy_Account2925)\
**Post date:** [2022 年 12 月 2 日午前 12:23 UTC](https://community.cybozu.dev/t/topic/1198/8 "2022-12-02T00:23:59Z")

</div>

なるほど、そちらの方が現状のフィールドに変更加えなくてもよさそうですね。  
出発距離フィールドに対してのChangeイベントも作成された方がいいかなと感じました。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account51](https://avatars.discourse-cdn.com/v4/letter/l/848f3c/32.png) [@Legacy\_Account51](https://community.cybozu.dev/u/Legacy_Account51)\
**Post date:** [2022 年 12 月 2 日午前 12:26 UTC](https://community.cybozu.dev/t/topic/1198/9 "2022-12-02T00:26:37Z")

</div>

> 出発距離フィールドに対してのChangeイベントも作成された方がいいかなと感じました。

おっしゃる通りですね。  
早速、実装します。

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex015/uploads/cybozu/original/1X/d5c841c3c5a6cb66eed514001c1b45147c9e1f4f.png) [@system](https://community.cybozu.dev/u/system)\
**Post date:** [2023 年 9 月 19 日午前 1:41 UTC](https://community.cybozu.dev/t/topic/1198/10 "2023-09-19T01:41:08Z")

</div>

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。
