QueryViewer は、
Query オブジェクトまたは
Data Provider オブジェクトを実行して取得したデータを表示できるようにするために
Web Panel オブジェクトまたは
Panel オブジェクトに含める必要のある
拡張コントロールです。表示できるオプションは次のとおりです:
- Card: クエリ値の静的な表現です。値のトレンドを表示できます。
- Chart: タイムライングラフ、円形グラフ、極座標グラフなど、さまざまな種類のグラフを選択できます。
- Map: 地理軸を含むクエリ用の世界、大陸、または国の地図です (GeneXus 17 Upgrade 4 以降で使用可能)。
- Pivot Table: 列の入れ替えと情報のグループ化が可能なテーブルです。
- Table: 行と列が固定されている静的なテーブルです。
重要な注記: モバイルアプリケーションのサポートは、
GeneXus 17 以降で使用できます。
- スマートフォンを含むすべてのブラウザーとの互換性
- データのエクスポート (PDF、HTML、XML、XLSX 形式。テーブルとピボットテーブルのオプションでのみ有効)
- ドラッグ アンド ドロップを使用したピボットテーブルの直観的な操作
- プログラミングによる設定も可能
注: テーブルとピボットテーブルでは、項目属性の右上を右クリックするだけで、その項目属性を非表示にすることができます。ピボットテーブルで、すべての Data 項目属性が非表示の場合、 [ Quantity ] フィールドは表示され、非表示にできません。
次の手順は、Web アプリケーションでこのコントロールを操作する方法を説明しています (ネイティブ モバイル アプリケーションでも同じように機能します)。
1) QueryViewer コントロールを [ ツールボックス ] から
Web Panel オブジェクトの [ Web Layout ] にドラッグします。
2) QueryViewer コントロールの
[ Object ] プロパティに、表示するデータを生成する
Query オブジェクトまたは
Data Provider オブジェクトを設定します。
3)
Output グループの下にある [
Type ] プロパティを設定します。ここで、出力の 5 つの表示方法のうちのいずれかを選択できます:
[ Chart ] オプションを選択する場合は、 [
Chart Type ] プロパティを設定して特定のタイプのグラフを選択できます。
4) この設定だけで、QueryViewer コントロールを含むオブジェクトを実行し、実行時に結果を表示できます。
また、QueryViewer の他のプロパティを設定することもできます。たとえば、縦棒グラフに関連する次のプロパティを設定できます:
- [ XAxis Title ] プロパティ = Country Name
- [ YAxis Title ] プロパティ = Population
結果として、次のクエリが実行時に表示されます:
注: 最初に QueryViewer コントロールをナレッジベース内の Web フォームにドラッグしたときに、このコントロールを使用するために必要となる
構造化データタイプと、新しい
GeneXus ドメインのセットを含む GeneXusReporting モジュールが追加されます。また、変数のセットがオブジェクトの [ Variables ] エレメント内に自動的に作成され、サンプルのソースがオブジェクトの [ Events ] エレメントに追加されます。このコードは、実行時のコントロールの使用および設定について情報を示すものです。
以下に、QueryViewer コントロールを使用する際のシナリオをいくつか示します:
- クエリの新しいビューを取得するための動的なフィルタ
1 つのクエリ内の 1 つの関係要素 (
クエリエレメント) について表示される値を変更して、そのクエリの新しいビューを表示できます。これを実行するには、QueryViewer コントロールとクエリ間でパラメーターを渡します。
- 実行時の QueryViewer コントロールのカスタマイズ
[ Axes ] プロパティに関連付けられた変数によって、コントロールのビューに影響するプロパティの一部をプログラミングにより変更できます。
コントロールに関連付けられたクエリを別のクエリに置き換えることで、クエリを変更できます。これを実行するには、次の例のように、コントロールの [ Object ] プロパティを変更します。
Event Start
Attractions.Object = AttractionsByCountry(<パラメーター 1>, <パラメーター 2>, ...)
EndEvent
この例では、
Attractions は QueryViewer コントロール名、Object はクエリを実行する
Query オブジェクトの名前を格納するためのコントロールのプロパティ、
AttractionsByCountry はその Query オブジェクトの名前です。関連付けられるオブジェクトが
Data Provider オブジェクトの場合にも、同じことが言えます。
Data Provider オブジェクトが QueryViewer に関連付けられている場合は、QueryViewerElements.Element 集計フィールドを使用するコードによって集計を変更できます。
既定の集計は Sum です。
「
QueryViewer コントロールのプロパティ」を参照してください。
GetMetadata() |
項目属性 (プロパティを含む) のリストを格納する QueryViewerElements タイプのオブジェクトを返します。(詳細については、「 [ Elements ] プロパティ」を参照) |
GetData() |
ピボットテーブルにロードされた項目属性のすべてのデータを格納する文字列変数を XML で返します。 |
GetFilteredData() |
その時点で表示されているデータ (フィルタが適用されるため、ピボットテーブルからすべてのデータを取得する GetData() メソッドとはデータが異なる場合があります) を格納する文字列変数を XML で返します。 |
NotifyMetadata() |
項目属性 (プロパティを含む) のリストを作成します。このメソッドは結果としてオブジェクトを返すのではなく、TrackContext イベントによって後から取得可能な QueryViewerElements タイプの変数を生成します。 |
NotifyData() |
ピボットテーブルにロードした項目属性によって参照されるすべてのデータをロードします。このメソッドは結果としてオブジェクトを返すのではなく、TrackContext イベントによって後から取得可能な変数を生成します。 |
NotifyFilteredData() |
フィルタを適用した結果その時点で表示されているデータ (NotifyData() メソッドでロードされるデータとは異なる場合があります) をロードします。このメソッドは結果としてオブジェクトを返すのではなく、TrackContext イベントによって後から取得可能な変数を生成します。 |
使用例として、データベースとの間でメタデータを保存および復元する方法を見てみます。この作業を実行するには、QueryViewer が埋め込まれている Web パネルで次のイベントを定義します。
メタデータを保存する
Event 'NotifyMetadata'
QueryViewer.NotifyMetadata()
Endevent
Event TrackContext(&Metadata)
SaveMetadata(&Metadata)
EndEvent
メタデータを復元する
Event Refresh
&Axes = RestoreMetadata()
EndEvent
注:
QueryViewer コントロールの互換性