Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

リストの定義

ここでは、リストを定義する方法を説明します。

スタジオでは、リストの形式設定を定義できます。"キューブ・クラスのリファレンス情報" の "<listing>" を参照してください。

また、個別のリスト・フィールドを定義することもできます。ユーザはアナライザでこのフィールドを使用してカスタム・リストを作成できます。

Tip:

キューブ定義の外部で (アーキテクトにアクセスすることなく) リストを定義することもできます。"リスト・グループの定義" を参照してください。

"このドキュメントに示したサンプルのアクセス方法" も参照してください。

リストの追加

リストを追加する手順は以下のとおりです。

  1. [要素の追加] をクリックします。

    ダイアログ・ボックスが表示されます。

  2. [新規項目名の入力] に、リスト名を入力します。

    "モデル要素の名前" を参照してください。

  3. [リスト] をクリックします。

  4. [OK] をクリックします。

  5. モデル・ビューワ[リスト] セクションでリスト名を選択します。

  6. 必要に応じて、以下の詳細も指定します。

    • [表示名] — リストのローカライズ可能な名前。この名前を指定しない場合、代わりに論理名が表示されます。

    • [説明] — リストの説明。

    • [リスト・タイプ] — リストのタイプ。[テーブル] (既定値) または [マップ] を選択します。

      [マップ] を選択する場合、"マップ・リストの定義" を参照してください。

    • [SQL Select モード] — リストの取得に使用される SQL クエリの %SelectModeOpens in a new tab。これによって、アナライザまたはダッシュボード・ウィジェットでの特定のデータ型の表示方法が決まります (特に、日付と時刻)。既定の [表示モード] のほか、[論理モード] (内部保存の場合に使用する形式) または [ODBCモード] でリストを表示することも選択できます。

      これらのオプションの詳細は、"InterSystems SQL の基礎" ページの対応するセクションを参照してください。

    • [リソース] — リストを保護するリソースを指定します。

      これの使用法については、"InterSystems Business Intelligence の実装" の "セキュリティの設定" を参照してください。

  7. リストを定義します。手順は後続のセクションを参照してください。

単純なリストの定義

単純なリストは、キューブで使用されているソース・テーブルのフィールドを使用します。単純なリストを定義するには、このページの前半で示した説明に従ってリストを追加し、以下のオプションを指定します。

  • [フィールド・リスト] — 表示するソース・テーブル内のフィールドのコンマ区切りリストを指定します。このオプションを指定するには、[フィールド・リスト] の横の検索ボタン をクリックして、フィールドを選択するダイアログ・ボックスを表示します。このようにするとアーキテクトでは以下のように表示されます。

    Listing - Field List screen in Architect, showing the available fields for the Patient Details element of the Patient cube.

    このダイアログ・ボックスを使用する手順は以下のとおりです。

    • 必要に応じて、[ソースクラス] ツリーの項目を展開します。

    • プロパティを追加するには、[ソースクラス] ツリーでプロパティ名をダブルクリックします。このプロパティは [フィールド・リスト] に表示されるリストの最後に追加されます。既定のキャプションが付いたプロパティは、追加時にエイリアスが自動的に割り当てられます。CAPTION プロパティの詳細は、"クラスの定義と使用" の "主要なプロパティ・パラメータ" を参照してください。プロパティに表示される値は SqlFieldName です。これはプロパティ名と異なる場合があります。

    • 項目を上または下に移動するには、[フィールド・リスト] でその項目をクリックし、必要に応じて上矢印または下矢印をクリックします。

    • 項目を編集するには、[フィールド・リスト] でその項目をクリックし、[フィールド編集 :] で変更して [更新] をクリックします。例えば、SQL エイリアスを追加できます。サブセクション "追加のオプション" を参照してください。

    • 項目を削除するには、[フィールド・リスト] でその項目をクリックし、[X] ボタンをクリックします。

    完了したら、[OK] をクリックします。

    または、[フィールド・リスト] に直接値を入力します。以下はその例です。

    PatientID,Age,Gender,HomeCity->Name AS "Home City",TestScore AS "Test Score"
    

    [リスト — フィールド・リスト] ダイアログ・ボックスを使用すると、ヘッダが自動的に $$$TEXT トークンでラップされることに注意してください。以下の例のように、$$$TEXT を使用してキューブのドメインが追加されます。

    Product->Name AS "$$$TEXT["Product","HOLEFOODS"]"
    

    別のドメインを [フィールド・リスト] に直接入力して、キューブの既定のドメインを上書きできます。

  • [Order by] — リストの並べ替え基準として使用するソース・テーブル内のフィールドのコンマ区切りリストを指定します (これらは [フィールド・リスト] に含める必要はありません)。全体的な並べ替えは、リストの最初のフィールドによって制御され、二次的な並べ替えは 2 番目のフィールドによって制御される、というように続きます。

    このオプションを指定するには、[フィールド・リスト] の横の検索ボタン をクリックして、フィールドを選択するダイアログ・ボックスを表示します。このダイアログ・ボックスは、[フィールド・リスト] のダイアログ・ボックスの簡略バージョンです。

    または、[Order By] に直接値を入力します。以下はその例です。

    Age,Gender
    

    フィールド名の後に ASC または DESC キーワードを組み込んで、それぞれ昇順または降順で並べ替えることができます。

  • [データ・コネクタ] フィールドと [カスタム SQL クエリ] フィールドは無視します。

Note:

リストの生成される SQL クエリは、確実に決まった順序 (%ID 順など) でレコードを返すとは限りません。指定のテーブルに対して InterSystems SQL クエリ・オプティマイザが選択するクエリ・プランは、さまざまな要因に基づいて変更される可能性があります (詳細は、"クエリ・パフォーマンスの調査" を参照してください)。このため、一貫した順序でレコードを提示したい場合は、並べ替え基準を明示的に指定する必要があります。これを行うには、アーキテクトで [Order by] オプションを設定するか、キューブのクラス定義で <listing> 要素に orderBy 属性の値を設定します。

追加のオプション

以下の点に注意してください。

  • 矢印構文を使用すると、別のテーブルのプロパティを参照できます。"InterSystems SQL の使用法" の "暗黙結合 (矢印構文)" を参照してください。

    PatientID,HomeCity,PrimaryCarePhysician->DoctorGroup
    
  • エイリアスを組み込むことができます。

    PatientID,Age,Gender,HomeCity->Name AS "Home City",TestScore AS "Test Score"
    

    または、以下のようにします。

    PatientID,Age,Gender,HomeCity->Name "Home City",TestScore "Test Score"
    
  • 特殊なトークン $$$TEXT[] を使用して指定することで、エイリアスをローカライズできます。以下はその例です。

    %ID,DateOfSale As "$$$TEXT["Date Of Sale"]"
    
  • 関数名を括弧で囲み、フィールド名として解釈されないようにすると、標準 SQL 関数と InterSystems SQL 関数を使用できます。

    (UCASE(PatientID)),%EXTERNAL(Gender)
    
  • field_name ではなく、source.field_name を使用すると、より高度な SQL 機能を使用できます。

    %ID,'$'||source.Sales AS Sales
    

    この例では、Sales 列に Sales フィールドが表示され、先頭にドル記号 ($) が付加されています。

Tip:

既定では、SQL 述語節で比較が評価される場合、InterSystems IRIS® では、論理 (内部保存) 値が使用されます。代わりに値をその表示形式または ODBC 形式で使用するには、SQL 関数 %EXTERNAL または %ODBCOUT をそれぞれ使用します。

データ・コネクタ・リストの定義

データ・コネクタ・リストは、データ・コネクタのフィールドを使用します。このようなリストを定義するには、このページの前半で示した説明に従ってリストを追加し、以下のオプションを指定します。

  • [データ・コネクタ] — 使用するデータ・コネクタ・クラスを選択します。

  • [フィールドリスト] — 組み込むフィールドを指定します。このフィールドは、データ・コネクタ内のフィールドとする必要があります。エイリアス、SQL 関数、または矢印構文を含めることはできません。

    既定では、リストは %ID という名前のプロパティのみを表示します (存在する場合)。

  • [Order by] — 使用されません。

  • [カスタム SQL クエリ] フィールドは無視します。

SQL カスタム・リストの定義

SQL カスタム・リストは、キューブで使用されるソース・テーブル以外のテーブルからのフィールドの使用が可能です。(データ・コネクタからのフィールドの使用は不可能なので注意してください。)

Note:

システムでは、もう 1 つの種類のカスタム・リスト (アナライザでユーザによって定義されたリスト) がサポートされています。"キューブ・クラスのリファレンス情報" の "<listingField>" を参照してください。

SQL カスタム・リストを定義するには、このページの前半で示した説明に従ってリストを追加し、以下のオプションを指定します。

  • [カスタム SQL クエリ] — これを選択します。

  • [カスタム SQL] — このセクションで示した説明に従って SQL SELECT クエリを指定します。

[カスタム SQL] クエリの詳細を確認する前に、システムがリストを作成する方法を理解する必要があります。どのリストについても、現在のコンテキスト (ユーザがリストを要求するコンテキスト) で使用されるファクトに対応するソース ID 値のセットを含む一時リスト・テーブルが生成されます。カスタム SQL クエリは、一時リスト・テーブルでレコードとソース ID が一致するフィールドを選択します。内部的には、クエリ全体は以下のようになります。

SELECT source.Field1,source.Field2 
FROM BI_Study.Patient source,internal-listing-table-name list 
WHERE source.%ID=list.sourceID AND list.queryKey='2144874459'

SQL カスタム・クエリを指定する際は、これらの詳細の一部を置換するトークンを指定します。具体的に、[カスタム SQL] では、以下の基本的な形式で値を指定します。

SELECT list of field names  FROM $$$SOURCE, othertable AS alias  WHERE $$$RESTRICT AND otherrestriction

以下は、この指定の説明です。

  • FROM 節は、クエリする複数のテーブルを指定します。この節の $$$SOURCE トークンは、キューブのソース・テーブルのエイリアスとして source を確立し、一時リスト・テーブルのエイリアスとして list を確立します。

    $$$SOURCE は内部で BI_Study.Patient source,internal-listing-table-name list などに置換されます。

    また、othertable AS alias は、クエリする他のテーブル、およびこのテーブルのエイリアス (必要な場合) を指定します。さらに他のテーブルも同様に指定できます。

  • WHERE 節は、ソース・テーブルをリスト・テーブルおよび他のテーブルに結合する条件を指定します。

    $$$RESTRICT トークンは、ソース・テーブルを一時リスト・テーブルに結合する条件によって置換されます。内部でこれは source.%ID=list.sourceID AND list.queryKey='2144874459' など、コンテキストに依存するものに置換されます。

    また、otherrestriction は、他の SQL 制限を指定します。上記の構文では、制限が AND で結合されています。必要に応じて、OR を代わりに使用して、より複雑な WHERE 節を作成できます。

  • list of field names では、フィールド名のコンマ区切りリストを使用します。これは、FROM 節にリストされている任意のテーブルのフィールドにすることができます。キューブのソース・テーブルのフィールドでは、source.fieldname の形式の参照を使用します。矢印構文も同様に組み込むことができます。

  • エイリアスを含めることもできます。また、特殊なトークン $$$TEXT[] を使用して指定することで、エイリアスをローカライズできます。以下はその例です。

    SELECT ID,UnitsSold As "$$$TEXT["Units Solds"]" FROM $$$SOURCE WHERE $$$RESTRICT
    
  • クエリの最後に ORDER BY 節を含めることもできます。

簡単な例 (キューブのソース・テーブルのみを使用) :

SELECT source.PatientID,source.Age,source.HomeCity->Name 
FROM $$$SOURCE 
WHERE $$$RESTRICT

他の例 (他のテーブルのデータを使用) :

SELECT source.PatientID,FavoriteColor 
FROM $$$SOURCE, BI_Study.PatientDetails AS details 
WHERE $$$RESTRICT AND source.PatientID=details.PatientID

マップ・リスト (地理リスト) の定義

既定では、[リスト・タイプ][テーブル] で、リストに情報のテーブルが表示されます。適切なデータがある場合、代わりに [リスト・タイプ][マップ] に指定できます。この場合、リストは、リスト・データに含まれている地理的な場所を示すマーカが付いたマップです。例えば、マップで営業場所や顧客の位置をハイライト表示することができます。以下はその例です。

A Map Listing, showing a Google map of New England, with many locations on the map indicated with red pins.

Important:

マップ・リストでは Google Maps API が使用されます。この API が利用条件 (Terms of Use) に従って使用されていることを確認してください。利用条件には、このリストに表示されているリンクからアクセスできます (上図を参照)。

Google Maps API を使用するには、API キーを取得する必要があることに注意してください。詳細は、"InterSystems Business Intelligence の実装" の "基本設定の指定" を参照してください。

このようなリストを定義するには、このページで前述した一般的な手順を使用して、以下の操作を実行します。

  • [リスト・タイプ][マップ] に指定します。

  • フィールド Latitude および Longitude が含まれるように、リスト・クエリを定義します (大文字と小文字は区別されます)。これらのフィールドには、それぞれに適切な緯度と経度が 10 進形式で格納されている必要があります (度/分/秒の形式ではありません)。

    例えば、[SQL クエリ] を以下のように設定できます。

    EventId, $$$IKSUMMARY as Summary, LocationCoordsLatitude As Latitude, LocationCoordsLongitude As Longitude
    

    この例は、Aviation デモからの引用です。"InterSystems Business Intelligence の上級モデリング" の "キューブでの Text Analytics の使用法" を参照してください。

このリスト・クエリには、他のフィールドも含めることができます。追加したフィールドは、ユーザがマップの位置をクリックしたときに、バルーンに表示されます。以下はその例です。

Clicking a location on this map of aviation incidents reveals the EventID and Report fields for that incident.

この例は、Aviation デモからの引用です。"InterSystems Business Intelligence の上級モデリング" の "キューブでの Text Analytics の使用法" を参照してください。

FeedbackOpens in a new tab