別のサブフォームの動的データでサブフォーム行を追加する方法

別のサブフォームの動的データでサブフォーム行を追加する方法

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

要件            

サブフォームに行を自動追加し、 別のサブフォームから取得した動的データで自動入力する。

利用ケース  

注文データベース 」というフォーム には、顧客の詳細と、サブフォーム内に頻繁な注文内容が含まれています。別のフォーム「新規注文 があり、顧客はこのフォームを使用して商品を注文します。顧客が自分の顧客IDを入力すると、「 注文データベース」フォームから頻繁な注文が取得され、「新規注文 」フォームのサブフォームに自動入力されます。

手順

1. 2つのフォームを作成します (以下の詳細に従う):
フォーム
フォームリンク名
フィールドタイプ
フィールド名
フィールドリンク名
注文データベース
Orders_Database
名前
顧客名
Customer_Name
一行テキスト
顧客ID
Customer_ID
サブフォーム
  • 一行テキスト
  • 数値
注文履歴
  • 商品名
  • 数量
Order_History
  • Product_Name
  • Quantity
新規注文
New_Order
一行テキスト
顧客ID
Customer_ID1
一行テキスト
顧客名
Customer_Name1
サブフォーム
  • 一行テキスト
  • 数値
注文詳細
  • 商品名
  • 数量
Order_Details
  • Product_Name1
  • Quantity1

2. ワークフローを作成します (以下の詳細に従う) :

このワークフローは、 顧客が 顧客 ID 項目に値を入力したときに実行されるため、 フォームイベント ]として 項目へのユーザー入力を選択します。

3. [新しいアクションを追加]をクリックします。

4. 次の Delugeスニペットを Delugeエディターに保存します。
  1. // 指定された顧客 ID に基づいて、データベースから顧客データを取得します
  2. database_records = Orders_Database[Customer_ID == input。Customer_ID1];

  3. // 取得したデータから顧客名を代入します
  4. input。Customer_Name1 = database_records。Customer_Name;

  5. // 顧客データが見つかった場合、サブフォームからデータを取得します
  6. if(Customer_Name1。isEmpty() == 無効)
  7. {
  8. input。Order_Details。クリア(); // 既存のサブフォーム行をすべてクリアします
  9. for each line_item in database_records。Order_History // 各サブフォーム行を反復処理して値を取得します
  10. {
  11.                     // 取得したデータでサブフォーム行を作成します
  12. row1 = New_Order。Order_Details();
  13. row1。Product_Name1=line_item。Product_Name;
  14. row1。Quantity1=line_item。数量;
  15. rowcollection = コレクション();
  16. rowcollection。insert(row1);
  17. input。Order_Details。insert(rowcollection);
  18. }
  19. }

  20. // 顧客データが見つからなかった場合は、既存の入力内容をクリアします
  21. else
  22. {
  23. input。Order_Details。クリア();
  24. }

動作を確認する