明細内の最大値と最小値を取得する

テーブルパーツの明細内の最大値と最小値を取得するサンプルをご紹介します。

サンプルについて

本サンプルのソースコードについてや、カスタマイズ方法等の技術的なお問合せは承っておりません。

利用するイベント

申請入力画面イベント(パーツ値変更イベント)

サンプルフォーム

パーツID

パーツタイプ

補足

-

テーブルパーツ

fidNumの1列

fidNum

テキスト(一行)パーツ

タイプ:数値型、テーブルパーツの1列目

fidMax

テキスト(一行)パーツ

タイプ:金額型

fidMin

テキスト(一行)パーツ

タイプ:金額型


カスタマイズコード
カスタマイズコード
Copied!
(function () {
'use strict';

// テーブルパーツの明細の値に変更があった場合、明細内の最大値と最小値を取得するイベント
collaboflow.events.on('request.input.fidNum.change', function (data) {

const parts = data.parts;
// 明細行の情報
// テーブルパーツのIDは「 tbl_ + テーブルパーツの配置順」
const tableRows = parts['tbl_1'].value;
const numArray = [];

const rowCount = tableRows.length;
// 明細内の数値を配列にする
for (let rowIndex = 0; rowIndex < rowCount; rowIndex++) {
const numValue = tableRows[rowIndex]['fidNum'].value;
if (numValue !== '') {
numArray.push(numValue);
}
}

// 最大値をfidMaxパーツに設定する
parts['fidMax'].value = numArray.reduce(function (a, b) {
return Math.max(a, b);
});

// 最小値をfidMinパーツに設定する
parts['fidMin'].value = numArray.reduce(function (a, b) {
return Math.min(a, b);
});

});
})();

動作の確認手順

1. サンプルのカスタマイズコードをjsファイルに保存します。
2. アプリ設定>フォーム設定から新規に通常フォームを作成します。
3. サンプルフォームに、先で記載されている必要な項目を配置します。
4. サンプルフォームを再度表示し、カスタマイズタブを表示します。
5. 保存したファイルをアップロードします。
6. アプリ設定>経路設定から新規に経路を作成します。
7. 新規文書から作成した経路名をクリックします。
8. 申請画面が表示されます。
9. テーブルの明細に数字を入力します。
10. 最大値と最小値が表示されます。

動作イメージ