2016-03-30 6 views
1

私はこれをかなり検索しましたが、この製品の通常の問題のようなものはどこでも良い解決策を見つけることができません。Spotfire:別のデータテーブルの範囲として1つの選択肢を使用する

私はロールアップテーブル(メモリ)にあるデータテーブルを持っています( 'Ranges'と呼んでいます)。基本的にはそのような:

 
id | name | f1 | f2 | totals 
0 | Channel1 | 450 | 680 |  51 
1 | Channel2 | 890 | 990 | 220 

...ので、Y.

上のXと合計の名前を持つ棒グラフを作成し

に私は、外部リンクで別のテーブルを持っています大規模な(500M +行)表に変換します。そのテーブル(「実数」と呼ぶ)には、範囲のF1とF2の値に収まる列( 'Fc')があります。

私はこのselect文トリガーする範囲のための棒グラフの選択を使用するスポットファイアアナリスト(v7.xより)のための方法が必要です:

SELECT * FROM Actuals WHERE Actuals.Fc between [Ranges].[F1] AND [Ranges].[F2] 

をしかし、どのような関係(外部キーが存在しません)は、2つのデータソース間で、1つはメモリ(範囲)にあり、もう1つは動的にロードされています。

TLDR:ある視覚化の選択した行を、別の視覚化のデータのフィルタ式として使用するにはどうすればよいですか?この問題を回避するための

答えて

0

私の選択: これはどのあなたができるドキュメントプロパティにF1とF2の値を格納する次のコードを実行されます「負荷選択されたデータ」

を言うボタンを追加します。動的にロードされたテーブルをフィルタリングし、リフレッシュをトリガするために使用します(リフレッシュコードを使用するか、自動的にロードするように設定します)。

rowIndexSet=Document.ActiveMarkingSelectionReference.GetSelection(Document.Data.Tables["IL_Ranges"]).AsIndexSet() 

if rowIndexSet.IsEmpty != True: 
    Document.Properties["udF1"] = Document.Data.Tables["IL_Ranges"].Columns["F1"].RowValues.GetFormattedValue(rowIndexSet.First) 
    Document.Properties["udF2"] = Document.Data.Tables["IL_Ranges"].Columns["F2"].RowValues.GetFormattedValue(rowIndexSet.First) 

if Document.Data.Tables.Contains("IL_Actuals")==True: 
    myTable=Document.Data.Tables["IL_Actuals"]  
if myTable.IsRefreshable and myTable.NeedsRefresh: 
    myTable.Refresh() 

これは、現在、あなたのユーザーが一度に複数の範囲を表示することができないことを前提に動作しており、単純に選択された最初のものを示しています。

複数の範囲を表示できるようにしたい場合は、IL_Rangesテーブルにカーソルを置き、各値の最小値と最大値を取得し、実数を最小値と最大値の間で制限するか、本質的に 'Fcと450と680の間のFcまたは890と990の間のFc'と言う文字列は、準動的ステートメントを実行する文字列としてストアドプロシージャに渡し、結果のデータセットを取得します。

+0

チェルシー、ありがとう!それは機能しますが、アップデートを自動化する方法はありますか?ユーザーがヒストグラムバー(f1とf2の間のすべての行数)をクリックすると、そのクリックアクションは上記のボタンスクリプトと同じである必要があります。基本的には、グラフ内の何かを選択すると、スクリプトが強制的に実行されます。 – poodull

+0

私はこれを個人的にしたことはありませんが、あなたはこれを模倣できると思います: [link](http://spotfired.blogspot.com/2015/10/update-doc-property-trigger-ironpython.html) – Chelsea

+0

wow 。それは本当に精巧なようです。 Spotfireは実際に選択肢がスクリプトと直接対話する方法を持っていませんか?とにかく、私はあなたの元の投稿とまったく同じように遠くになってきました。私はクライアントがちょうど今、気のリフレッシュボタンをクリックしなければならないと思う:)再びありがとう – poodull

関連する問題