【kintone】kintoneアプリの少数桁設定について気をつけておくこと
0. 目次
1. 概要
ギークス株式会社CRUD Lab.の、ATSUSHIです。
今回は、kintoneアプリの数値フィールドにおける少数値設定について まとめます。
派手な話題ではないですが...データの管理上とても大切な仕様なので アプリ作成前に検討すべき内容です。 私は痛い目に遭いました...ご注意を。
> 今回フィーチャーするkintoneの技術
2. 小数点に関する設定いろいろ
> アプリの設定
kintoneでは、アプリ毎に少数桁数の設定が可能です。
この設定は、「アプリ設定 > 詳細設定タブ > 高度な設定」内にあります。
《少数部の桁数》欄で指定した桁数以下の数値は《丸めかた》のルールに基づいて処理されます。
このルール設定は、アプリ内に設置された数値フィールドや計算フィールドに影響します。
> フィールドコード内の設定
数値フィールドの設定項目に《小数点以下の表示桁数》というものがあり、 アプリの一覧・詳細画面での数値表示に影響がある設定になります。
この設定で注意したいポイントは、登録された数値を書き換えているのではなく、 kintone上で該当のデータを表示する際に桁数を整形しているということです。 従って、CSVの書き出しを行った場合やJS APIを用いいた場合は元々登録されている値が取得されます。
3. チートシート的な
前述のような、仕組みがkintoneには装備されています。 アプリ内で小数点を含んだ数値を扱う場合の多くは計算処理が絡んでくると思います。 kintoneでの計算のやり方は大きくわけて2点になります
- 計算フィールドコード内で計算式を利用する
- JavaScriptを利用して計算式を実装する
この2点は「文字列を扱うか数値を扱うか」によって計算結果が変わってくる可能性があります。 変わってくる理由としては、前述の小数値計算の扱いが、数値系のフィールドに影響するからです。
以下、具体例をまとめました。 入力値に小数点を含む計算処理を行った場合の挙動の違いがでてきます。
<計算式>
入力値 x 1.08
上図の例では
アプリ設定として、《小数桁数》:4桁
数値の自動計算フィールドの表示制限を10桁としています。
①はアプリ設定の制限を受けて小数点以下が4桁まで登録され、残りの桁を0詰めで表示されます。
②は自動計算時にアプリ設定の制限を受けます(そのため、値は①と同値)
③はJavaScriptによる実装で、計算結果はなにも端数処理がされない状態で返されますが、数値フィールドのためデータ保存時にアプリ設定の制限を受けます。
④は文字列フィールドに対してJavaScriptによる計算結果を登録するため、アプリ設定の制限を一切受けることはありません。
CSV出力の場合は、数値フィールドコードに設定された《小数点以下の表示桁数制限》は無視され、アプリ設定の制限を反映した状態になります。
4. まとめ
アプリの小数値ルールを一括で定義するのは経験上、大変難しく感じています。 現状は小数点を含む計算やフィールドに関しては今回ご紹介した組み合わせで対処しています。 個人的には、自動計算フィールドでEXCELのような丸め関数(CEIL, FLOOR, ROUND ...etc)が使えたら便利だなと思っています。
ファストシステムにあっても、しっかりとした仕様把握と設計が必要だと改めて実感しました。