kintone における javascript のカスタマイズ例として、チェックボックスをトリガーとしたい場合も多いかと思います。
ここでは javascript カスタマイズを使って、チェックボックスを操作する方法を紹介します。
チェックボックスの仕様について
cybozu が公開している@kintone/dts-genに含まれている型定義ファイルを見ると、kintone のチェックボックスは以下のように定義されています。
interface CheckBox {
type?: 'CHECK_BOX';
value: string[];
disabled?: boolean;
error?: string;
}
チェックボックスフィールドは複数のチェックボックスを実装できる仕様となっているため、value
は配列で定義されているようです。
例えば、「うさぎ」と「かえる」という2つのチェックボックスを実装し、フィールドコードを「動物」としたチェックボックスフィールドが存在する場合、データは以下のように格納されます。
record['動物'].value = ['うさぎ', 'かえる'];
チェックボックスの操作
javascript からチェックを追加する
前述した「動物」チェックボックスフィールドにチェックを追加する場合のコードです。
record['動物'].value.push('かえる');
javascript からチェックを解除する
javascript において、配列から要素を削除する方法はいくつかありますが、filter を使う方法が kintone の仕様と相性が良いのではないかと思います。
record['動物'].value = record['動物'].value.filter((item) => item === 'かえる');
クエリーでのチェックボックスの操作
次に、REST API などで使用するクエリーにおける、チェックボックスの項目の指定方法を紹介します。
チェックが入っている場合
チェックボックスフィールドの項目にチェックが入っているレコードを抽出する場合は、以下のように指定します。
動物 in ("かえる")
フィールドコードにダブルクォーテーションは不要ですが、項目には必ずダブルクォーテーションを付ける必要があります。
たとえ対象のチェックボックスフィールドにチェックボックスが 1 つしか実装されていなかったとしても、上記のように指定します。
チェックが入っていない場合
チェックボックスフィールドの項目にチェックが入っていないレコードを抽出する場合は、以下のように指定します。
動物 not in ("かえる")
前述したチェックが入っている場合のクエリーにnot
を追加しただけです。