0

私はオンデマンドでデータテーブルをロードしており、前のタブのマーキングにリンクしています。データテーブルは次のようになります。カスタムメッセージを表示するTIBCO SpotfireのPythonスクリプティング

ID  Values 
    1   365 
    2   65 
    3   32 
    3   125 
    4   74 
    5   98 
    6   107 

IDの個数に基づいてこの新しい視覚化に反映されるデータを制限します。

私は現在、プロパティ内の 「式による制限」セクションを使用しています。私の表現が

UniqueCount(ID) <= 1000 

これは、しかし、私もそれが ようなメッセージを表示するように「選択されたIDの数が多すぎます。最大リミットが1000である」

私がやって考えていたと思います、完璧に動作している これはプロパティコントロールを使用して、プロパティコントロールが鉄のpythonスクリプトをトリガする場所を使用します。どのようにそのスクリプトを書くための任意の提案?

+0

これはカーソルオブジェクトでは間違いなく実行できますが、データテーブルのすべてのマーク行を解析する必要があるため、大量のデータセットについては提案しません。 サイズに応じて、選択したデータのIDの個数を取得するだけのデータテーブルを追加し、カーソルをそのデータセット(1行のみ)に読み込むことをお勧めします。 – Chelsea

答えて

1

1つの回避策は、ページ上に小さなテキストエリアを使用することです(おそらくヘッダーとして)。 Insert Dynamic Item - >計算値またはアイコンを使用して、マーキング(選択)に基づいてカウントまたは一意のカウントを実行させることができます。たとえば、Count(ID)が1000を超えると、テキストが赤に変わるか、アイコンの色が変わることがあります。これは、ポップアップを作成するとは限らないが、あまりにも多くの行が選択されたことを即座にユーザに通知する処理ライトの代替手段です。以下

編集:

<!-- Invisible span to contain a copy of your value --> 
<span style="display:none;" id="stores-my-count"><span id="seek-ender"></span></span> 


\\Javascript below to grab dynamic item element's value and put it into a span 
\\To be executed every time the dynamic value changes 
$("#DynamicItemSpotfireID").onchange = function() { 
    var myCount = $("#DynamicItemSpotfireID").text(); 
    $("#stores-my-count").append(myCount); 
} 

#IronPython script to locate the value placed into the span by the JS above 
#and put only that portion of the page's HTML (only the value) into a document property 
parentSpan = '<span id="stores-my-count">' 
endingSpan = '<span id="seek-ender">' 
startingHTML = myTextArea.As[VisualContent]().HtmlContent 
startVal = startingHTML.find(parentSpan, startingIndex, endingIndex) + len(parentSpan) 
endVal = startingHTML.find(endingSpan, startingIndex, endingIndex) 
Document.Properties["myMarkingCount"] = startingHTML[startVal:endVal] 

私はこのコードのほとんどをテストしていないと、私はこの問題について考え始めるための場所ではなく、ターンキー・ソリューションとして提供。うまくいけば、ほんの少しの微調整だけで動作します。

+0

ありがとう!これは役に立ちました。迅速なフォローアップ。ダイナミックアイテムの値をカスタム式またはプロパティコントロールに渡す方法はありますか? –

+0

IronPythonスクリプトを書くことができました – HalcyonicDays

+0

申し訳ありませんが、私は打撃を認識しませんでした[ Enter]はすぐに私のコメントをコミットします。 ダイナミックアイテムから値を取得するためのJavaScriptを作成してから、IronPythonスクリプトを記述してテキストエリア内の値を探し出すことができます。残念ながら、コードの例(完全な答えでさえない)はコメントボックスの制限を超えます。 – HalcyonicDays

関連する問題