初めてkintoneをカスタマイズする人がkintone APIの基礎知識を学べるよう、チュートリアルの内容を充実させてリニューアルしました。
リニューアル後のチュートリアルは次のページを参照してください。
はじめよう kintone API
はじめに
今回は、kintoneのJavaScript APIでのデータ取得の中で質問が多いテーブルを使って、カテゴリ別のデータを集計します。
アプリの準備
今回使用する、パン屋の売上管理アプリの設定を見てみましょう。
テーブルの作り方は次のページを参考にしてください。
フォームに表(テーブル)を追加する
各フィールドとフィールドコードは以下のようになっています。
毎度のことですが、フィールドコードはあとで使います。
フィールド名 | フィールドタイプ | フィールドコード |
---|---|---|
日付 | 日付 | 日付 |
- | テーブル | order_items |
- | スペース | sub_total_area |
作成日時 | 作成日時 | 作成日時 |
更新日時 | 更新日時 | 更新日時 |
また、テーブル(order_items)フィールドの中はこのような感じです。
フィールド名 | フィールドタイプ | フィールドコード |
---|---|---|
カテゴリ | ラジオボタン | カテゴリ |
商品名 | 文字列(1行) | 商品名 |
単価(円) | 数値 | 単価 |
個数 | 数値 | 個数 |
レコードの取得
以下は、6月23日の売上データです。
このデータを利用してみることにしましょう。
テーブルのレコードオブジェクトを取得する、といっても特に難しいことはありません。
他のフィールドタイプと同じように、event
オブジェクトのrecord
要素に対し、テーブルに設定したフィールドコードを指定してください。
つまり、以下のような形です。
|
|
これによってどのようなデータが取得できるのかについては、
フィールド形式のページを確認しましょう。
テーブルのレスポンスデータについては、カスタムフィールドのテーブルの欄に記載があります。
テーブルのフィールド形式
フィールドタイプ
SUBTABLE
value
の例
|
|
特定の行のデータを取得する
試しに、テーブルの2行目のレコードの商品名を取得してみましょう。
ここで注意したいのが、配列の要素は「0」から数えるのでテーブルの2件目のデータは配列では1番目となる点です。
|
|
無事、2件目の商品名「食パン」が取得できました!
上記のキャプチャでも分かると思いますが、alert
の出力はテーブルのレコードを表示するより先に出ています。
つまり、app.record.detail.show
イベントはテーブルのデータ表示より先に実行されているということですね。
ここについては、今後取得したテーブルのデータを利用して高度なことをするときのために覚えておいた方がよいかもしれません。
カテゴリ別の合計を算出する
次に、カテゴリ別の日別売上集計をしてみましょう。
「パン」「その他」のカテゴリ別の売上を調べるため、それぞれのカテゴリ別に売上を集計してスペースフィールドに表示するスクリプトを作ってみましょう。
ここまではじめようシリーズを読んで下さった皆さんには詳しい説明は不要と思いますが、以下はそのサンプルです。
|
|
今回も簡単にできました!
最後に
ここでは取り上げませんでしたが、テーブルのデータの集計には、自動計算機能を利用する方法もあります。
そちらもぜひマスターしておいた方が便利な機能ではありますが、今回のように何かの条件を加えて自由な計算をするにはJavaScriptを利用するといろいろなことができるかと思います。
目的に応じて必要なものを選べるようなkintoneマスターをぜひ目指していきましょう!
このTipsは、2022年7月版kintoneで動作を確認しています。
デモ環境
デモ環境で実際に動作を確認できます。
https://dev-demo.cybozu.com/k/11/
ログイン情報は cybozu developer network デモ環境で確認してください。