お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
要件
分析のために、サブフォーム内の数値項目に対して統計演算を実行します。
利用ケース
注文管理アプリケーションには、 注文 フォームと 商品フォームの 2 つがあります。 商品 フォームには在庫内のすべての商品が一覧表示され、 注文 フォームは新規注文の登録に使用します。 この 注文 フォームには、 サブフォーム があり、顧客が購入した商品の一覧を保持します。 商品を追加すると、その商品の単価が各行に表示される必要があります。注文フォームを送信する前に、合計金額を計算する必要があります。さらに、購入された商品の平均単価も表示する必要があります。
手順
|
フォーム名
|
フォームリンク名
|
項目タイプ
|
項目名
|
項目リンク名
|
|
商品
|
商品
|
一行テキスト
|
商品名
|
Product_Name
|
|
通貨
|
単価
|
単価
|
|
注文
|
注文
|
サブフォーム
|
注文詳細
|
Order_Details
|
|
通貨
|
合計金額
|
Total_Amount
|
|
数値
|
商品の数
|
Number_of_Items
|
2. ワークフローを作成 し、 注文 フォームの読み込み時に、メインフォーム内の 平均金額、合計金額 および 商品の数 の項目、ならびにサブフォーム内の 小計 および 単価 項目を無効にします。これらは自動計算されるため、値を手動入力できないようにしています。
3. [新しいアクションを追加] をクリックし、以下のスクリプトを追加して項目を無効にします。
-
disable Total_Amount;
-
disable Number_of_Items;
-
disable Order_Details.Unit_Price;
-
disable Order_Details.Sub_Total;
4.
ワークフローを作成 し、 注文 フォームのサブフォーム内の 商品 項目へのユーザー入力時に実行されるように設定します。
5. [新しいアクションを追加] をクリックし、続いて表示される Deluge エディターに以下のコードを追加します。
-
// 選択された商品の単価を取得
-
Unit_Price = 商品[ID == row.商品].単価;
-
// 取得した単価を代入
-
row.単価 = Unit_Price;
-
if( row.数量 != null)
-
{
-
row.Sub_Total = row.単価 * row.数量;
-
}
6.
別のワークフローを作成 し、 注文 フォームで、購入された数量に基づいて、対象商品の小計を更新するように設定します。
7. [新しいアクションを追加] をクリックし、 [Deluge Script]を選択します。続いて表示される Deluge エディターに以下のコードを追加します。
-
// 商品ごとの合計および小計の計算
-
if(row.数量 != null && row.単価 != null)
-
{
-
row.Sub_Total = row.数量 * row.単価; // 数量に基づいて合計を計算
-
}
-
else
-
{
-
row.Sub_Total = 0;
-
}
-
// 注文された商品の数をカウント
-
input.Number_of_Items = Order_Details.count();
-
// すべての商品の価格の合計を計算
-
input.Total_Amount = Order_Details.sum(Sub_Total);
サブフォームに商品が追加されるたびに、対応する商品の単価を取得するワークフローがトリガーされます。数量が入力されるたびに、小計、合計/平均金額、および商品の数を算出するワークフローが実行されます。
動作を確認する
注意点
レポートは 次のように表示されます: