[kintone][カスタマイズjavascript]フィールドの値を取得する

概要

カスタマイズjavascriptを用いて、テキストやラベルなどの各フィールドの値を取得するコードを記載する。

公式リファレンス

色々テストをしてみた後に全て公式リファレンスに説明があって若干ショック。

Kintoneの公式リファレンスは自分が見てきた中で一番わかりやすいサイトだと思います。はい。

Kintone API ドキュメント > Kintone API 共通 > フィールド形式

記述方法

各フィールドの情報はrecordというObject(連想配列)に格納されている。フィールドもまた連想配列でありtypevalueの2つの要素を持つ。typeはフィールドの種類が文字列で格納されている。typeをチェックすることで「テキストボックスであれば」といった処理をすることができる。valueはユーザーの入力値が入っている。また、アクセスする方法にはドット記法、ブラケット記法がある。フィールドコードが可変になることを考慮するならばブラケット記法の方が望ましいかもしれない。

    kintone.events.on('app.record.detail.show', (event) => {
        const record = event.record;
        // ドット記法(.)、ブラケット記法([])のいずれでもアクセスできる
        console.log(record['StrOneLine']['value']);
        console.log(record['StrOneLine'].value);
        console.log(record.StrOneLine.value);
        console.log(record.StrOneLine['value']);
    });

 

各フィールドの参照

     kintone.events.on('app.record.detail.show', (event) => {
        console.log('id: ' + kintone.app.record.getId());
    
        // 文字列(1行)
        // type : SINGLE_LINE_TEXT
        // 未入力 : ""
        console.log(record.StrOneLine.value);

        // 文字列(複数行)
        // 改行は\n
        // type : MULTI_LINE_TEXT
        // 未入力 : ""
        console.log(record.StrLines.value);

        // 数値項目
        // type : NUMBER
        // 未入力 : ""
        console.log(record.Integer.value);

        // ラジオボタン
        // type : RADIO_BUTTON
        // value : selectX
        // valueは選択肢の名称が格納される
        // 未入力 : - (ラジオボタンは未選択に出来ない)
        console.log(record.RadioItem.value);

        // ドロップダウン
        // type : DROP_DOWN
        // value : select
        // valueは選択肢の名称が格納される
        // 未入力 : ""
        console.log(record.DropdownItem.value);

        // チェックボックス
        // type : CHECK_BOX
        // value : [selectX, selectY]
        // valueは選択された選択肢の名称が配列で格納される
        // 未入力 : 空配列
        console.log(record.CheckboxItem.value);

        // 複数選択
        // type : MULTI_SELECT
        // value : [selectX, selectY]
        // valueは選択された選択肢の名称が配列で格納される
        // 未入力 : 空配列
        console.log(record.MultipleSelect.value);

        // 日付項目
        // type : DATE
        // value : YYYY-MM-DD
        // 未入力:null
        console.log(record.DateItem.value);

        // 時刻項目
        // type : TIME
        // value : "HH:MI"
        // 未入力:null
        console.log(record.TimeItem.value);

        // 日付 + 時刻項目
        // type : DATETIME
        // value : 2025-04-24T03:00:00Z
        // 未入力:""
        console.log(record.DateTimeItem.value);

        // リンク項目
        // type : LINKITEM
        // value : リンクの文字列
        // 未入力:""
        console.log(record.LinkItem.value);

        // グループ
        // type : -
        // recordオブジェクトからグループにアクセスをすることはできない。
        // グループ内のアイテムであっても、recordから直でアクセスをする必要がある。
        // (誤) record.Group1.SubItem1.value
        // (正) record.SubItem1.value

        // テーブル
        // type : SUBTABLE
        // value : 各行の情報を配列として持つ。
        console.log(record.Table1.value[0]);

        // 1行分の情報
        const row_data = record.Table1.value[0];
        // Kintoneが内部で管理するテーブルの行ID
        console.log(row_data.id);
        const row_items = record.Table1.value[0].value;
        console.log(row_items.TableItem1.value);
        console.log(row_items.TableItem2.value);
        console.log(row_items.TableItem3.value);
    });