サブフォームコントロールを再設計し、パフォーマンスの向上と機能の強化を実現

サブフォームコントロールは、eFormの開発でとても頻繁に使用されます。これは、複数行のレコードを持つ複合コントロールで、各行が複数のサブコントロールを含みます。

サブフォームコントロールの使用は、ユーザーが一連のレコードの複数の行と列を操作する必要があるマスター/詳細形式のフォームにおいては、非常に一般的です。また、フォーム内のNレベルの入れ子構造を処理することもできます。

サブフォームコントロールは、通常のデータグリッドコントロールと比べて多くの機能を提供できる非常に柔軟性の高いコントロールですが、性質が非常に動的であるため、複数のHTML divタグのせいでHTMLがかさばることがあります。また、HTML DOMの操作が多く発生する可能性があり、50行のアクセスレコードを持つフォームのレンダリング時間に影響を与える可能性があります。フォームに複数のサブフォームコントロールがある場合、これはさらに悪化します。適切に使用されなければ、サブフォームコントロールはフォームのレンダリング時間が遅くなる主因の1つになりえるのです。

 AgilePoint NX 8.0において、サブフォームコントロールは再設計されています。より高速なパフォーマンスと強化された機能を備え、フォームのレンダリング時間は大幅に短縮されました。新しいサブフォームコントロールに追加された主な機能の一部をご紹介します。

  1. すべてのレコードを展開する
  2. すべてのレコードを折りたたむ
  3. 最大の高さを設定する
  4. 改ページ機能の改良―ユーザーがリストをページ分割する際のレコードのオンデマンド読み込み
  5. サブフォーム機能がほとんどゼロDOM操作によって実装され、フォームレンダリングが高速に
  6. 列レイアウトのカスタム列幅をサポート

今後は、新しいサブフォームコントロールを使用してアプリケーションを設計することを強くお勧めします。既存のサブフォームコントロールは今後しばらくのリリースでも引き続き使用可能ですが、旧来のコントロールとなるので、下位互換性のためだけに存在することになります。既存の実行中のアプリケーションに影響を与えないように、旧来のサブフォームコントロールを使用したアプリも今後しばらくの間はサポートを続けますが、ボタンをクリックするだけで旧来のサブフォームコントロールを新しいものに自動変換できる移行オプションも提供されます。この方法については、シームレスなエクスペリエンスを実現するためにコントロールを更新するまで、すべての既存のアプリがそのまま動作し続けることが保証されています。移行方法に関しては別の記事にてご紹介いたします。

ここでは、サブフォームコントロールの改良点と、サブフォームコントロールのレンダリング中に節約された時間を示すパフォーマンス関連の統計をいくつかご紹介いたします。これはフォーム全体ではなく、サブフォームコントロールのみのレンダリング中に節約された時間となりますのでご注意ください。

テストケース 行数 節約された時間の割合
6つのサブコントロールを持つ単一のサブフォームコントロール –  改ページなしでルックアップコントロールなし 40-500 25% – 52%
6つのサブコントロールを持つ単一のサブフォームコントロール – 15行毎の改ページでルックアップコントロールなし 40-500 55% – 97%
6つのサブコントロールを持つ単一のサブフォームコントロール – 改ページなしで各サブフォームに単一のルックアップコントロール 40-500 30% – 45%
6つのサブコントロールを持つ単一のサブフォームコントロール – 15行毎の改ページで各サブフォームに単一のルックアップコントロール 40-500 73% – 96%
6つのサブコントロールを持つ3つのサブフォームコントロール – 改ページなしでルックアップコントロールなし 40-500 20% – 45%
6つのサブコントロールを持つ3つのサブフォームコントロール – 15行毎の改ページでルックアップコントロールなし 40-500 57% – 97%
6つのサブコントロールを持つ3つのサブフォームコントロール – 改ページなしで各サブフォームに単一のルックアップコントロール 40-150 35% – 43%
6つのサブコントロールを持つ3つのサブフォームコントロール – 15行毎の改ページで各サブフォームに単一のルックアップコントロール 40-150 70% – 93%

コメント