2016-09-05 25 views
-1

私はspotfireにデータテーブルがほとんどありません。しかし、私は鉄のpythonスクリプトを使用して特定のテーブル(現在アクティブな参照テーブルではない)の列を参照する必要があります。また、一意の値を列に印刷したいと考えています。Iron Pythonスクリプトを使用してスポットファイアテーブルの列から値を取得する方法はありますか?

EX:ユーザーがプロパティから値を選択するとチェックボックスとしてチェックボックスとして50の値を持つプロパティコントロールがあり、その値をチェックするためにチェックボックスフィルタを制御し、ユーザーが選択しなかった場合は残りの値をオフにする必要があります。そのチェックボックスフィルタのすべての値をオフにします。

+0

これを助けてください。 – sofuser9

答えて

1

以下のスクリプトを使用して、列から値を取得できます。このコントロールは、大量のデータがある場合にのみ使用されます。あなたが望むなら、それを削除することができます。

from Spotfire.Dxp.Data import * 

tableName='your_table_name' 
columnToFetch='your_column_name' 
activeTable=Document.Data.Tables[tableName] 
rowCount = activeTable.RowCount 
rowsToInclude = IndexSet(rowCount,True) 
cursor1 = DataValueCursor.CreateFormatted(activeTable.Columns[columnToFetch]) 
ctr1 = 0 
for row in activeTable.GetRows(rowsToInclude,cursor1): 
    rowIndex = row.Index 
    val1 = cursor1.CurrentValue 
    print val1 
    ctr1 = ctr1 + 1 
    if (ctr1 == 5): 
     break 

Credit TechGoje

+0

このスクリプトでscsimonさんに感謝します。列内のすべての値[Even duplicates]は、特定の列の固有値を印刷する方法はありません。 – sofuser9

+0

@Rama固有の配列に格納する必要があります。これがあなたのお役に立てば幸いです。それは99%いいえ? APIの少しの研究でそれを完成させるでしょう – scsimon

+1

@ramaあなたも以前の質問に投票したり、1つの答えを受け入れたりしていません。私はあなたがそれらを再訪し、有益な回答をアップアップし、正しいものを受け入れることを勧めます。あなたの傾向が支持者に報われ続けていない場合、多くのstackoverflow貢献者はあなたの質問を無視するかもしれません。思考の相手のための食べ物。 – scsimon

0

this postからのスクリプトは、データテーブルの列から一意の値を取得するために使用することができます。それは以下のように動作します -

  1. 列 にカーソルrowCount = activeTable.RowCount rowsToInclude = IndexSet(rowCount,True) cursor = DataValueCursor.CreateFormatted(activeTable.Columns[columnToFetch])
  2. 値を格納するために辞書を使用して、印刷のキーを作成します。

    UC = dictの()

  3. UCにおけるキーの辞書

    から値を取得し、カーソルを介して for row in activeTable.GetRows(rowsToInclude,cursor): rowIndex = row.Index val = cursor.CurrentValue uc.update({val:ctrl})

  4. をトラバースすることによって、辞書に値を追加:キー

を印刷
関連する問題