概要
グラフィカルテーブルでクリックされたミニチュアビジュアライゼーションの値を、IronPythonスクリプト内で取得する方法について説明します。
グラフィカルテーブルでは、以下の計4種類のミニチュアビジュアライゼーションを利用することができます。
- スパークライン
- 計算値
- アイコン
- ブレットグラフ
例(「売上」や「利益」列は「計算値」に該当します):
本機能は、ミニチュアビジュアライゼーションのアクションに指定されているIronPythonスクリプト内でのみ利用できる、特別な組み込み変数「Context」を使用して実現します。
通常、ボタンや文書のプロパティに紐づくIronPythonスクリプトでは、以下の3つの変数が利用可能です。
print(dir())の出力:
['Application', 'Document', 'ModulesService', '__builtins__']一方、ミニチュアビジュアライゼーションのアクションに指定されているIronPythonスクリプトの場合は、これらに「Context」を加えた、計4つの変数が利用可能となります。
print(dir())の出力:
['Application', 'Context', 'Document', 'ModulesService', '__builtins__']
なお、本記事でご紹介する方法は、グラフィカルテーブル内、またはテキストエリア内に配置されている、いずれのミニチュアビジュアライゼーションでも利用可能です。
動作確認環境
本記事は、以下の環境にて動作確認を行ったうえで作成しています。
- Spotfire Server 14.6 LTS
- Spotfire application for Windows(旧Analyst) 14.6 LTS
なお、本記事でご紹介する内容は、Spotfire Analyst 12.0 LTS 以降のバージョンでも適用可能です。
本記事に記載のIronPythonスクリプトは、Web PlayerやAutomation Services上でも動作します。
IronPythonスクリプトの例
本記事で紹介しているコード例は、ミニチュアビジュアライゼーションのアクションとして設定されている場合のみ動作します。
変数「Context」を利用して、クリックされたミニチュアビジュアライゼーション、およびその値を取得するIronPythonスクリプトのコード例は以下の通りです。
# クリックされたミニチュアビジュアライゼーションを取得
clickedMiniVis = Context.Visualization
# 行(ロー)の値を取得(本例ではローの軸に2カラムを指定している)
state = Context.HierarchyPathValues[0] +"," + Context.HierarchyPathValues[1]
# 計算値の場合、クリックされたセルの値が返される
# それ以外の場合、Noneが返される
value = Context.Value
注意事項:
- Context からはクリックされたミニチュアビジュアライゼーション(軸)の値しか取得できません。
- 上記のコードはグラフィカルテーブル上でのクリック時は正常に動作しますが、スクリプトの編集画面から直接実行(テスト実行)すると例外「NameError: name 'Context' is not defined」が発生します。
参考資料
- MiniatureVisualizationActionContext Class (APIリファレンス)
- Adding actions performed when clicking on visualization items (製品マニュアル、英語版)
- ビジュアライゼーション項目をクリックしたときに実行されるアクションを追加する (製品マニュアル、日本語版)