初めまして、ももたすと申します。
自身の想像が自身にスクリプトの力がないと解決しなくなってしまったので、
どうか教えてください。
教えていただきたい内容は下記です。
フィールド1|フィールド2 |フィールド3
AAAA | | AAAA
CCC | BBBBBB | BBBBBB
前提なのですが、上記はテーブルであり、フィールド1はルックアップフィールド、2,3は文字列フィールドです。
ここからがやりたいこと、です。
・フィールド1のルックアップフィールドに、4文字以上入力があればフィールド3にフィールド1の文字を写す。
・フィールド1が3文字以下の場合はBフィールドの文字をCフィールドに文字を写す。
というものです。ルックアップを写したい先は上記のB、Cフィールドに該当はしないのですが、編集したい都合があり、テーブル内他のフィールドは全部編集できるようにしてあります。
お忙しい中恐縮ですが、どなたか教えて頂けたらと思います。
宜しくお願いします。
ももたすさん
こんにちは。ひよこです。
「ルックアップフィールド(フィールド1)の値が変更されたタイミングで、フィールド2やフィールド3に値が変更される」という前提で説明しています。
認識が違っていたらごめんなさい…。
全体の流れとして次をイメージしています。
- ルックアップの値の変更を検知する(変更のイベントを使う)
- 変更行を取得する
- 変更行のルックアップの値を使って、if 文でフィールド2やフィールド2に対する値の設定を行う
1. ルックアップの値の変更を検知
追加画面や編集画面では、フィールド値の変更時イベント があります。
ただし、上記ページの注意書きにあるように、「フィールドコードに指定可能なフィールド」にルックアップフィールドがなく、直接ルックアップフィールドの変更イベントは取れません。
代替として、ルックアップで「取得」ボタンを押したときに反映されるフィールド(仮に「フィールド4」とします)の変更イベントを使います。
var events = ['app.record.create.change.フィールド4','app.record.edit.change.フィールド4'];
kintone.events.on(events, function(event) {
// テーブルの変更行の取得や、変更行のルックアップの値を使って、if 文でフィールド2やフィールド2に対する値の設定を行う
}
2. 変更行を取得する
「変更されたテーブル行の情報を取得して合計を変更してみよう」Tips が参考になると思います。
3. 変更行のルックアップの値を使って、if 文でフィールド2やフィールド2に対する値の設定を行う
取得したフィールド1の値の長さ(length)によって、if文でフィールド2やフィールド3に値を設定します。
これについても、上記Tipsのサンプルコード内にフィールドの値の取得・設定方法が書いてあります。