グリッド内のグリッドへの入力
From GXtest Wiki
アプリケーションの中には、グリッド内のグリッドを使用するものがあります。GeneXus では FreeStyleGrid でこれを実現します。 このような場合、GXtest では親グリッドに含まれるグリッド内のフィールドでのアクションは記録されません。したがって、コマンドを手動で追加する必要があります。
このとき、SetGridContext コマンドを使用します。SetGridContext コマンドを使うと、グリッドの選択基準を指定するグリッドコンテキストを作成できます。このコマンドは連続して使用したり、連結して入れ子構造にしたりすることができます。
SetGridContext コマンド
SetGridContext コマンドのパラメーターは次のとおりです:
- OutputContext (変数タイプ):この変数はグリッドのコンテキストを返します。このコンテキストは、残りのパラメーターで構成されています。つまりこの変数は、グリッド内のグリッドコントロールでアクションを実行するコマンドによって使用されるコンテキストです。
- InputContext (変数タイプは任意):この入力コンテキストは、新しいコンテキストのマウントに使用できます。入れ子構造の複数のグリッドでアクションを実行する必要がある場合、このフィールドを使用する必要があります。
- Grid (コントロールタイプ):コンテキストを設定するグリッドです。
- SelectionRule:Grid グリッドの選択基準です。
例
すべての請求書をグリッドに表示するページがあり、そこに請求書の項目をすべて表示するとします。 この例では、請求書のリストを示すグリッドを GridInvoice、それぞれの請求書の項目を示すグリッドを GridInvoiceLines とします。ここで、InvoiceLineAmount と InvoiceLineNumber の各フィールドに対して VerifyControlTextTable コマンドを実行し、2 つの検証を行うとします。
これらの検証を実行するには、次のコマンドを使用します:
- SetGridContext (コンテキスト ContextGridInvoice によって、請求書のグリッドの 1 行目でコマンドを実行可能)
- OutputGrid = ContextGridInvoice
- InputGrid = (空)
- Grid = GridInvoice
- SelectionRule = ByRow (1)
- SetGridContext (コンテキスト ContextGridInvoiceLines によって、1 つ目の請求書の 1 行目でコマンドを実行可能)
- OutputGrid = ContextGridInvoiceLines
- InputGrid = ContextGridInvoice
- Grid = GridInvoiceLines
- SelectionRule = ByRow (1)
- VerifyControlTextTable (コマンドに適切なコンテキストを使用することが必要)
- Grid = GridInvoiceLines
- Control = InvoiceLineAmount
- SelectionRule = ByContext (&ContextGridInvoiceLines)
- VerifyControlTextTable (コマンドに適切なコンテキストを使用することが必要)
- Grid = GridInvoiceLines
- Control = InvoiceLineNumber
- SelectionRule = ByContext (&ContextGridInvoiceLines)
コンテキストを構成したあとは、必要なすべてのコマンドに同じコンテキストを使用できます。