はじめに

テーブルにある数値の右に累計値を追加したいというケースはよくあるのではないでしょうか?


その場合の作成方法は 「テーブルで累計計算をしてみる」記事で紹介しているのですが、この方法とは異なり、累計値は項目別で計算したいという場合もあるかもしれません。


今回は編集画面で項目別の累計計算を実現する方法をご紹介します。


今回のカスタマイズで出来ること

ボタンを押すと項目毎の累計値がセットできます。


今回検証するアプリのフィールド

アプリには次のフィールドを設定しています。

フィールド名

フィールドコード

テーブル

フィールドタイプ


button


スペース

行番号

行番号

テーブル累計

数値

項目

項目

テーブル累計

文字列(1行)

数値

数値

テーブル累計

数値

累計

累計

テーブル累計

数値


Customineの設定

全体の設定は次のようになります。



わかりやすいように、部分ごとに段階を追って説明します。


ボタンの準備


やること「ボタンをスペースに配置する」と条件「追加画面・編集画面を表示した時」を使い、ボタンを用意します。


行番号のセット


やること「テーブルの列に行番号をセットする」と条件「ボタンを押した時」を設定し、ボタンを押した時にまず、テーブルの列に行番号をセットします。


テーブル情報を処理するためにレコードとして取得


やること「テーブル行をレコードとして取得する」と条件「他のアクションの実行が完了した時」を設定し、テーブルの情報をレコードとしてあらかじめ取得しておきます。


ループの開始


やること「リストから要素を取り出す」と条件「いずれかのアクションの実行が完了した時」を使います。


累計値計算の準備でレコード絞り込み


やること「取得したレコードを絞り込む」と条件「リストから要素を取り出した時」を使います。


なお、前述の「リストから要素を取り出す」でテーブルの1行ぶんの情報が取れており、この時「= $4.項目」とすると、取り出したレコードの「項目」フィールドの値を使う事ができるので、これを用いてテーブル行をレコードとして取得した内容を絞り込みます。

なお、ここで出てくる「= $4.項目」というのは何を書いているかというと、

= $「リストから要素を取り出す」のアクション番号.使いたいフィールド(今回の場合は行番号)のフィールドコード

という意味合いになります。


ループ毎の累計値計算


先の5番アクションで、累計値計算の対象となるレコードのみに絞っているレコードを使い、「レコード内の条件に合う行のフィールド合計値を計算する」で集計します。


その後、やること「フィールドに値をセットする」で累計値をセットしますが、この時に条件「他のアクションの実行が完了した時」に加えて、「フィールド値が特定の値ならば」で行番号を指定することで、狙ったテーブル行のフィールドにのみ値を反映する事ができます。
またここでは比較値に「$4.行番号」とすることで、リストから取り出したテーブル1行の行番号との一致をみるようにしています。


※ここに出てくる「= $4.行番号」は前述の「累計値計算の準備でレコード絞り込み」の節に記載の通りです。


以上で項目別の累計値の計算が可能になります。


まとめ

今回の仕組みは、項目を順番に並べておけば小計の計算にも使えるもので、色々と応用することができます。


みなさんもぜひ、色々とお試しください。


またご不明な点がございましたら、チャットサポートまでお気軽にお問い合わせください。