はじめに
kintoneの数値フィールドは詳細画面では3桁のカンマ付き表示に出来るのですが、編集画面では桁区切り表示は出来ません。
とは言え、そういうニーズはあると思いますので、ある程度自動でカンマ付きにできるように作成してみます。
今回のカスタマイズで出来ること
数値フィールドに値を入れた時にこういう動きになります。
半角で数値を入力するとカンマ区切りになる
全角で数値を入力すると半角のカンマ区切りになる
カンマ区切りの数値に数字を挿入すると正しい区切りになる(1,000 → 1,1000 のような入力で、11,000になる)
数字以外の文字が入力されたら値は消える
アプリには以下のフィールドを作成しました
Customineの設定
全体設定はこのようになります。
以下は個別に説明します。
フラグで処理開始を判定
「レコード追加・編集画面を表示した時またはフィールドの値を編集して値が変わった時」に「フィールド値が空ならば」で「フィールドに値をセットする」を使って処理フラグが空の時だけ処理フラグに値をセットします。今回の動きは「カンマ付き数値」の値を何度も変更するのでこうすることで多重起動を防ぎます。
値を変換
最初に「数値に変換する」で全角やカンマなどを除去して数値だけにします。その後に「数値をフォーマットする」でカンマ区切りに変更した上で「フィールドに値をセットする」を使って数値フィールドにセットします。これは「数値をフォーマットする」では数値フィールドに値をセットできないためです。
終了処理でフラグをクリア
数値の変換が終わったら処理フラグをクリアします。
保存時の処理
念のために処理フラグをクリアにするのと、保存エラーにならないように数値フィールドを数値に変換します。
以上で終了です。
まとめ
最初に記載の
数字以外の文字が入力されたら値は消える
という動きを
数字以外の文字が入力されたら変換前の値に戻す
とすると便利そうですが、少々複雑になるので別の機会に紹介したいと思います。