サブフォームのフィールドでの自動計算設定

サブフォームのフィールドでの自動計算設定

お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の英語版を参照してください。

要件

分析のために、サブフォーム内の数値項目に対して統計演算を実行します。

利用ケース

注文管理アプリケーションには、 注文 フォームと 商品フォームの 2 つがあります。 商品 フォームには在庫内のすべての商品が一覧表示され、 注文 フォームは新規注文の登録に使用します。 この 注文 フォームには、 サブフォーム があり、顧客が購入した商品の一覧を保持します。 商品を追加すると、その商品の単価が各行に表示される必要があります。注文フォームを送信する前に、合計金額を計算する必要があります。さらに、購入された商品の平均単価も表示する必要があります。

動作の確認

手順

1. フォームを作成 し、次の詳細を設定します。
フォーム名
フォームリンク名
項目タイプ
項目名
項目リンク名
商品
商品
一行テキスト
商品名
Product_Name
通貨
単価
単価
注文
注文
 
サブフォーム
  • ルックアップ(商品)
  • 数値
  • 通貨
  • 通貨
注文詳細
  • 商品
  • 数量
  • 単価
  • 小計
Order_Details
  • 商品
  • 数量
  • 単価
  • Sub_Total
通貨
合計金額
Total_Amount
数値
商品の数
Number_of_Items

2. ワークフローを作成 し、 注文 フォームの読み込み時に、メインフォーム内の 平均金額、合計金額 および 商品の数 の項目、ならびにサブフォーム内の 小計 および 単価 項目を無効にします。これらは自動計算されるため、値を手動入力できないようにしています。

3. [新しいアクションを追加] をクリックし、以下のスクリプトを追加して項目を無効にします。
  1. disable Total_Amount;
  2. disable Number_of_Items;
  3. disable Order_Details.Unit_Price;
  4. disable Order_Details.Sub_Total;

4. ワークフローを作成 し、 注文 フォームのサブフォーム内の 商品 項目へのユーザー入力時に実行されるように設定します。

5. [新しいアクションを追加] をクリックし、続いて表示される Deluge エディターに以下のコードを追加します。
  1. // 選択された商品の単価を取得
  2. Unit_Price = 商品[ID == row.商品].単価;
  3. // 取得した単価を代入
  4. row.単価 = Unit_Price;
  5. if( row.数量 != null)
  6. {
  7. row.Sub_Total = row.単価 * row.数量;
  8. }

6. 別のワークフローを作成 し、 注文 フォームで、購入された数量に基づいて、対象商品の小計を更新するように設定します。

7. [新しいアクションを追加] をクリックし、 [Deluge Script]を選択します。続いて表示される Deluge エディターに以下のコードを追加します。
  1. // 商品ごとの合計および小計の計算
  2. if(row.数量 != null && row.単価 != null)
  3. {
  4. row.Sub_Total = row.数量 * row.単価; // 数量に基づいて合計を計算
  5. }
  6. else
  7. {
  8. row.Sub_Total = 0;
  9. }
  10. // 注文された商品の数をカウント
  11. input.Number_of_Items = Order_Details.count();
  12. // すべての商品の価格の合計を計算
  13. input.Total_Amount = Order_Details.sum(Sub_Total);
サブフォームに商品が追加されるたびに、対応する商品の単価を取得するワークフローがトリガーされます。数量が入力されるたびに、小計、合計/平均金額、および商品の数を算出するワークフローが実行されます。

動作を確認する

注意点

  • 同様の方法で、 平均 最小 最大中央値 などの値も取得できます。Deluge を使用して計算した平均金額は、参考として動画内に表示されています。
  • サブフォームの値に対する全体の統計情報をレポート上に表示することも可能です。今回の例のように、メインフォーム側に対応する数値項目を用意しておくことで、サブフォームの数値項目の統計値を取得できます。上記の例では、 すべての注文 レポートに移動します。クイック表示]で最初のレイアウトをクリックし、 合計金額 項目を選択して、 Sum 平均 Min および Max の各項目をトグルして有効にします(下図参照)。 
 
レポートは 次のように表示されます: