冗長項目属性を使用することで、必要になるたびに毎回計算するのではなく、データベーステーブルに値を格納しておくことができます。データ更新の性能は犠牲になりますが、データ検索の性能が向上します。
グローバル式の項目属性および推論された項目属性は、トランザクションエディターの [ 冗長 ] の列を選択することにより冗長として定義できます。
[ 冗長 ] の列は既定では非表示となっています。 [ 表示列の選択 ] を使用してトランザクションエディターに含めることができます:
[ 表示列の選択 ] を開くには、トランザクションエディターで列のヘッダーの行を右クリックし、コンテキストメニューから [ 表示列の選択 ] を選択してから、 [ 冗長 ] オプションを選択します。
[ 冗長 ] の列がトランザクションエディターに表示されると、 [ 冗長 ] チェックボックスは冗長と定義できる項目属性についてのみ有効になります。
項目属性を冗長として定義すると、この項目属性は次回のデータベース再編成で対応するテーブルに追加され、値が取り込まれます。
データベースに変更が行われた場合、GeneXus は冗長項目属性を最新状態に維持します。
一般的な式の定義は次のとおりです。解説については、下記を参照してください。
Customer
{
CustomerID*
CustomerTotal = sum(InvoiceTotal)
CustomerLinesTotal = sum(InvoiceLineTotal)
}
Invoice
{
InvoiceId*
CustomerId
InvoiceTotal = sum(InvoiceLineTotal)
InvoiceLines
{
ItemID*
ItemPrice
InvoiceLineQty
InvoiceLineTota = ItemPrice * InvoiceLineQty
}
}
項目属性 |
初期値 |
更新された値 |
解説 |
InvoiceTotal |
Yes |
Yes |
|
CustomerTotal |
Yes |
Yes |
|
CustomerLinesTotal |
Yes |
No |
複数レベルの非冗長式を集計する式は正しく維持されません。
ナビゲーションダイアグラムに警告メッセージが表示されます: spc0043: CustomerLinesTotal is not instantiated in grid ...
|
|