レポートアクションを使用してサブフォームのデータを別のサブフォームにコピーする方法
お知らせ:当社は、お客様により充実したサポート情報を迅速に提供するため、本ページのコンテンツは機械翻訳を用いて日本語に翻訳しています。正確かつ最新のサポート情報をご覧いただくには、本内容の
英語版を参照してください。
データのサブフォーム内の値は、
レポート処理内のDelugeを使用して別のフォームのサブフォームにコピーできます。これにより、サブフォームデータのスムーズな転送と一貫性の保証が可能になります。
例えば、Zoho Creatorのリソース管理アプリケーションでは、チームがサブフォーム内の商品リストとともに商品リクエストを送信します。マネージャは、フォームのレポートからこれらのリクエストを認証します。認証後、リクエストはサブフォームから発注書フォームのサブフォームに要求された素材を複製することで直接発注書に変換されます。これは、レポート操作が標準データ上でクリックされると実行されます。
事前準備
アプリケーション内で一つのサブフォームから別のサブフォームにデータを転送するためには、両方のサブフォームが同じタイプの項目を2つの異なるフォーム間で持つ必要があります。ここではデモンストレーションの目的で、フォーム Form A内のサブフォーム項目Subform AとフォームForm B内のサブフォーム項目Subform Bを作成し、Subform A内の同じ項目を複製して、サブフォームデータをForm AからForm Bに転送します。
加えて、番号項目ID_NumberがForm Bに追加され、Form Aのレポートで操作商品が実行されたデータのIDを格納します。サブフォームデータは、データのIDをID_Number項目に保存してForm Aから取得し、それをForm BのSubform Bに反映します。
Form A:
Form B:
手順
- アプリケーションの編集モードでForm Aのレポートに移動します。操作項目を設定し、'Copy Subform'という名前でワークフローを作成し、以下のDelugeスクリプトをワークフローに追加します。この操作項目が実行されると、Form Bが開かれ、選択されたデータのIDがForm BのID 番号項目に反映されます。
- //openURLタスクを設定し、'Form B'を開き、選択したデータのIDを'Form B'のID番号項目に反映します。
- openUrl('#Form:Form_B?ID_Number='+input。ID, 'same window');
- 操作項目を追加し、Form Aのレポートのクイック表示レイアウトに追加すればForm Aのレポートのクイック表示からボタンでアクセスできます。

- 新規ワークフローの作成をForm Bのロード時に実行し、データイベントとして作成を設定します。このワークフローでは、差出人Aからサブフォームのデータを取得し、それを表示します。

- 新たな操作の追加 > Deluge Scriptをクリックし、以下のスクリプトをDelugeエディタに追加します。
- if(ID_Number != null)
- {
- //自動置換されるIDに一致する'Form A'の選択されたデータのサブフォームデータをID 番号 項目で取得します。
- fetch_records = Form_A[ID == input。ID_Number]。Subform_A;
- //サブフォームの行を格納するコレクションを作成します。
- rows_collection = コレクション();
- //'Form A'の各サブフォーム行を順次参照し、'Form A'のSubform Aから値を取得して割り当て、それを'Form B'のSubform Bに適用します。
- for each data in fetch_records
- {
- subform_row = Form_B。Subform_B();
- subform_row。Single_Line_B = data。Single_Line_A;
- subform_row。Number_B = data。Number_A;
- rows_collection。insert(subform_row);
- }
- //コレクションに格納されたサブフォームの行を'Subform B'に挿入します。
- input。Subform_B。insert(rows_collection);
- }
できることも、隠すとID 番号項目をForm Bで選択するということで、それは内部でIDの格納に使用されており、関連するデータをForm Aで取得します。
動作方法を見てみましょう
- サブフォームに行を挿入する
- カスタム操作を作成
- openUrl