Default 節を指定すると、データプロバイダーのグループは同じ名前の先行するグループがない場合にのみ出力に含まれます。
<Default>::= [ Default ]
税のテーブルがあるとします:
Taxes ( TaxInitialDate*, TaxFinalDate*, TaxVAT, TaxIncome )
現在の税の値を返すデータプロバイダーは次のようになります:
CurrentTaxes
Where TaxInitialDate >= today()
Where TaxFinalDate <= today()
{
VAT = TaxVAT
Income = TaxIncome
}
CurrentTaxes [ Default ]
{
VAT = 0.7
Income = 0.3
}
この期間に発生する税金がまったくない場合は、最後のグループが既定値を返します。
Default 節は For Each における When None 節と同等です。
Default 節は、同じレベルのすべてのグループに適用されます。これより上で指定したどの条件も満たされないと、Default グループが実行されます。
次に例を挙げて説明します。
MySdtColl
{
MySdtCollItem
{
Element where &a>3 { A=1 }
Element where &a=5 { A=2 }
Element [ Default ] where &a=2 { A=3 }
Element [ Default ] { A=4 }
}
}
実行時には、次のようになります:
&a=5 の場合は、2 つ (A=1 と A=2) 返されます。
&a=6 の場合は、1 つ (A=4) 返されます。
&a=2 の場合は、3 つ (A=4) 返されます。
&a=1 の場合は、4 つ (A=4) 返されます。
別の例として、あるカテゴリに属する製品名を含むコレクションを返し、そのカテゴリに製品が存在しない場合は「カテゴリに製品がありません」というテキストを返すようにしたいとします。
次のようなデータプロバイダーを定義します:
ProductsInCategory
{
ProductsInCategoryItem
Where ProductCategoryId = &CategoryId
{
ProductName
}
ProductsInCategoryItem [ Default ]
{
ProductName = 'No product in the given category'
}
}
|