明細内の最大値と最小値を取得する
テーブルパーツの明細内の最大値と最小値を取得するサンプルをご紹介します。
サンプルについて
本サンプルのソースコードについてや、カスタマイズ方法等の技術的なお問合せは承っておりません。
利用するイベント
申請入力画面イベント(パーツ値変更イベント)
サンプルフォーム
パーツID | パーツタイプ | 補足 |
- | テーブルパーツ | fidNumの1列 |
fidNum | テキスト(一行)パーツ | タイプ:数値型、テーブルパーツの1列目 |
fidMax | テキスト(一行)パーツ | タイプ:金額型 |
fidMin | テキスト(一行)パーツ | タイプ:金額型 |
カスタマイズコード
カスタマイズコード(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. 最大値と最小値が表示されます。
動作イメージ
