ここでは、GeneXus 18 以上に加えられた変更の詳細を示します。
- クエリとダッシュボードは Unanimo のデザインを採用しています (ナレッジベースの既定のスタイル)。
Query オブジェクトの [
Axis ] プロパティと [
Visible ] プロパティは、
GeneXus 17 Upgrade 1 で全面的にリファクタリングされました。詳細については、
こちらを参照してください。
ここでは、
GeneXus 16 Upgrade 11 以上での
Query オブジェクトの変更点について詳しく説明します。
GeneXus 16 Upgrade 11 と
Query オブジェクトを使用する場合、GeneXus Server を同じアップグレードまで更新する必要があります。詳細については、
互換性のセクションを参照してください。
Query オブジェクトに関連する文法が更新、改善されました。それぞれの変更点について詳しく説明します。
IN 演算子の角かっこが丸かっこに変わりました。これは、値のリストをかっこで囲む場合に当てはまります。たとえば次のエクスプレッションがあるとします。
att in [ value1, value2, value3, ... ]
これは自動的に次のように変更されます:
att in (value1, value2, value3, ...)
By (att1, att2, att3, ...) のかっこが必須ではなくなりました。項目属性でグループ化する前に別の項目属性を追加するには (請求書の平均月額を計算する場合など)、
by 節を使用します。次のエクスプレッションがあるとします:
Average (att1) By (att2, att3, ...)
これは次のように変わります:
Average (att1) by att2, att3, ...
これは
for each 節と同じ条件に従います。
DefinedBy (att1, att2, att3, ...) は、かっこが必須ではなくなり、2 語になりました。ベーステーブルを変更するには (顧客全員ではなく、請求書がある顧客を数える場合など)、
defined by 節を使用します。次のエクスプレッションがあるとします:
Count (att1) DefinedBy (att2, att3, ...)
これは次のように変わります:
Count (att1) defined by att2, att3, ...
WeightedBy (att) は、かっこが必須ではなくなり、2 語になりました。加重平均を求めるには、
weighted by 節を使用します。次のエクスプレッションがあるとします:
Average (att1) WeightedBy (numericAtt2)
これは次のように変わります:
Average (att1) weighted by numericAtt2
NOT 節 (エクスプレッションの途中で使用) がエクスプレッションの先頭に移動しました。次のエクスプレッションがあるとします:
att not like "xxx"
att not in [ "a", "b", "c" ]
att not in [ 1 to 10 ]
これは次のように変わります:
not att like "xxx"
not att in ("a", "b", "c")
not att in (1 to 10)
IS NULL 節を含むエクスプレッションは、
IsNull() 関数を使用するように変わります:
att is null
att is not null
これが次のように変わります。
att.IsNull ()
not att.IsNull ()
集計関数内のフィルタが削除されました。次のエクスプレッションがあるとします:
Sum (att1 where att2 = "xxx")
Sum (att1) where (> 1)
これが次のように変わります:
Sum (att1) where att2 = "xxx"
Sum (att1) where Sum (att1)> 1
次の新しい言語構造が追加されました。
列挙型ドメインの値をフィルタや式のフィールドで使用できます。次に例を示します。
# Formula
Att + Domain.Element1
# Filter
CustomerSex = Sex.Female
ブール値の使用がシンプルになり、ブール値の項目属性をフィルタで直接参照できます。次の記述があるとします。
Att = true
Att = false
これを次のように単純化できます:
Att
not Att
次のような条件式がサポートされるようになりました。
<expr1> if <cond1>; <expr2> if <cond2>; <expr3> otherwise
クエリのエレメントやフィルタで
Nullvalue() 関数を使用できます:
# Edition
Nullvalue(att)
# Filter
Att <> Nullvalue (Att)
- 各エクスプレッションは、後で SQL ステートメントを作成するときにエラーが発生しないよう、編集時に十分に検証されます。
- 「元に戻す」のサポートが改善されています (クエリの編集)。
- IntelliSense のサポートが強化され、項目属性、メソッド名、パラメーター名、列挙、集計対象となるその他の節 (by、defined by、weighted by) の候補が表示されるようになりました。
ここでは、
GeneXus X 以上での
Query オブジェクトの変更点について詳しく説明します。
GeneXus X をアップグレードするとき、
クエリを使用している場合は、次の互換性に関するセクションをご確認ください:
クエリのフィルタセクションに複数の変更が加えられ、新しい仕様 (Upgrade 4 以上) には、以前の仕様 (Upgrade 3 以下) との互換性がなくなりました。
クエリでフィルタを使用している場合は、すべてのフィルタセクションを削除して、新しい仕様で追加し直す必要があります。
Query Viewer コントロールが改善され、Java 環境と .NET 環境がサポートされるようになりました。