Python脚本在TIBCO Spotfire中显示自定义消息

时间:2016-10-07 01:06:58

标签: python visualization data-visualization ironpython spotfire

我正在按需加载数据表,并将其链接到上一个标签中的标记。数据表如下所示:

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

我想根据不同的ID计数限制引入此新可视化的数据。

我目前正在使用它 属性中的“按表达式限制数据”部分。 我的表达是

UniqueCount(ID) <= 1000

这很好用,但是,我也希望它能显示一条消息 “选择了太多ID。最大限制为1000”

我正在考虑使用属性控件来执行此操作,其中属性控件触发铁python脚本。关于如何编写该脚本的任何建议?

1 个答案:

答案 0 :(得分:1)

一种解决方法是使用页面上的小文本区域(可能作为标题)。你可以Insert Dynamic Item - &gt;计算值或图标,并根据标记(选择)执行计数或唯一计数。例如,一旦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]

我还没有对大部分代码进行测试,而是将其作为开始思考问题的地方,而不是一个交钥匙解决方案。希望它只需要很小的调整就可以了。