# 【急ぎ】テーブル上のIF文について

**URL:** <https://community.cybozu.dev/t/topic/3876>\
**Category:** kintone 開発相談\
**Created:** [2019 年 3 月 13 日午前 1:37 UTC](https://community.cybozu.dev/t/topic/3876 "2019-03-13T01:37:53Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Legacy\_Account](https://avatars.discourse-cdn.com/v4/letter/l/ba8739/32.png) [@Legacy\_Account](https://community.cybozu.dev/u/Legacy_Account)\
**Post date:** [2019 年 3 月 13 日午前 1:37 UTC](https://community.cybozu.dev/t/topic/3876/1 "2019-03-13T01:37:53Z")

</div>

初めまして、ももたすと申します。

自身の想像が自身にスクリプトの力がないと解決しなくなってしまったので、

どうか教えてください。

教えていただきたい内容は下記です。

&nbsp;

* * *

フィールド１｜フィールド２ ｜フィールド３

AAAA&nbsp; ｜ ｜&nbsp; &nbsp; &nbsp;AAAA

CCC&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;|&nbsp; &nbsp; BBBBBB&nbsp; &nbsp; &nbsp; &nbsp;|&nbsp; &nbsp; &nbsp; BBBBBB

* * *

前提なのですが、上記はテーブルであり、フィールド１はルックアップフィールド、２,３は文字列フィールドです。

ここからがやりたいこと、です。

・フィールド１のルックアップフィールドに、４文字以上入力があればフィールド３にフィールド１の文字を写す。

・フィールド１が３文字以下の場合はBフィールドの文字をCフィールドに文字を写す。

というものです。ルックアップを写したい先は上記のB、Cフィールドに該当はしないのですが、編集したい都合があり、テーブル内他のフィールドは全部編集できるようにしてあります。

お忙しい中恐縮ですが、どなたか教えて頂けたらと思います。

宜しくお願いします。

---

<div class="post-metadata">

**Author:** ![Legacy\_Account870](https://avatars.discourse-cdn.com/v4/letter/l/cc9497/32.png) [@Legacy\_Account870](https://community.cybozu.dev/u/Legacy_Account870)\
**Post date:** [2019 年 3 月 13 日午前 8:57 UTC](https://community.cybozu.dev/t/topic/3876/2 "2019-03-13T08:57:04Z")

</div>

ももたすさん

こんにちは。ひよこです。

「ルックアップフィールド（フィールド１）の値が変更されたタイミングで、フィールド２やフィールド３に値が変更される」という前提で説明しています。  
認識が違っていたらごめんなさい…。

全体の流れとして次をイメージしています。

1. ルックアップの値の変更を検知する（変更のイベントを使う）
2. 変更行を取得する
3. 変更行のルックアップの値を使って、if 文でフィールド2やフィールド2に対する値の設定を行う

&nbsp;

**1. ルックアップの値の変更を検知**  
追加画面や編集画面では、フィールド値の変更時イベント があります。

- [レコード追加画面のフィールド値変更時イベント](https://community.cybozu.dev/hc/ja/articles/201941984#step3)
- [レコード編集画面のフィールド値変更時イベント](https://community.cybozu.dev/hc/ja/articles/202166270#step3)

ただし、上記ページの注意書きにあるように、「フィールドコードに指定可能なフィールド」にルックアップフィールドがなく、直接ルックアップフィールドの変更イベントは取れません。  
代替として、ルックアップで「取得」ボタンを押したときに反映されるフィールド（仮に「フィールド４」とします）の変更イベントを使います。

```
var events = ['app.record.create.change.フィールド4','app.record.edit.change.フィールド4'];
kintone.events.on(events, function(event) {
// テーブルの変更行の取得や、変更行のルックアップの値を使って、if 文でフィールド2やフィールド2に対する値の設定を行う
}

```

&nbsp;

**2. 変更行を取得する**  
「[変更されたテーブル行の情報を取得して合計を変更してみよう](https://community.cybozu.dev/hc/ja/articles/209998843%20)」Tips が参考になると思います。

&nbsp;

**3. 変更行のルックアップの値を使って、if 文でフィールド2やフィールド2に対する値の設定を行う**  
取得したフィールド1の値の長さ（length）によって、if文でフィールド2やフィールド3に値を設定します。  
これについても、上記Tipsのサンプルコード内にフィールドの値の取得・設定方法が書いてあります。

&nbsp;

---

<div class="post-metadata">

**Author:** ![Legacy\_Account](https://avatars.discourse-cdn.com/v4/letter/l/ba8739/32.png) [@Legacy\_Account](https://community.cybozu.dev/u/Legacy_Account)\
**Post date:** [2019 年 3 月 14 日午前 5:21 UTC](https://community.cybozu.dev/t/topic/3876/3 "2019-03-14T05:21:35Z")

</div>

ひよこさん

ももたすです、お世話になります。

上記アドバイスありがとうございます。

頂いたアドバイスを参考にトライしてみます！

どうもありがとうございました。
