はじめに
kintoneのフィールドの値はrecord[フィールドコード].value
で基本取り出せます。
例えば文字列フィールドにテキスト
というフィールドコードを設定し、こんにちは
と入れていた場合、
record["テキスト”].value
としてあげればこんにちは
が取り出せます
少し異なるフィールドだけ羅列します。
テスト環境の画面
今回こんな感じの環境で見ていきます。
ユーザー選択(組織選択、グループ選択)
record["ユーザー選択"].value
で取得するとvalueの中に配列で各ユーザーの情報{code:ユーザーのコード, name:ユーザーの名前}
が入っています。
例えば、一人目の名前だけ取得したければrecord["ユーザー選択"].value[0].name
ユーザー選択のメンバー全員の名前だけ取得してカンマ区切りの文字としたい時は、
const userNames = record["ユーザー選択"].value.map(user=>user.name).join(",")
mapでnameだけの配列を作ってjoinしてあげれば、ですね。組織とグループ選択も同じです。
チェックボックス
これも配列で返ってきます。値が入っているだけですのでこれもまたrecord["チェックボックス"].value[0]
と書いたら1番目の値が取得できます。ちなみにチェックが入っている値のみが配列に入ってきます。チェックしてない値は配列には入ってこないです。
サブテーブル
kintoneで開発デビューした際に一番躓くポイントだと思います。恐らく。
このテーブルの値を見ていきましょう
例の如くrecord["テーブル"].value
とした時を見ると、
配列で各行のデータがオブジェクトで入っています。{id: 各行に自動で振られたid, value: 各行のフィールドデータ}
となっています。さらに各行のvalue:フィールドデータを掘り下げると、
なっており、テーブル以外の普段使っているフィールドの情報が入っている形になります。
例えば、2行目のコメントを取り出したい場合は、record['テーブル'].value[1].value["コメント"].value
で取り出せます。
テーブルのデータ全部をどうにかしたい
そんな場合はまたfor文やmapで行数分確認していきます。
例として、レコードの詳細画面でテーブル
というサブフィールドと、サブテーブルに金額
という数値フィールドを設置しテストします。
(() => {
'use strict';
// レコードの詳細画面で実行していきます
kintone.events.on('app.record.detail.show', (event) => {
const record = event.record;
let total = 0;
// テーブルの回し方
record['テーブル'].value.map((row) => {
total += Number(row.value['金額'].value);
});
alert(total);
});
})();
おわりに
少し異なるフィールドの扱いをざっと書いてみました。
テーブルは慣れてくると楽しくなってくると思います。
それでは
楽しいkintoneライフを
参考