Python 在 TIBCO Spotfire 中编写脚本以显示自定义消息
Python Scripting in TIBCO Spotfire to show custom Messages
我正在按需加载数据 table 并将其链接到上一个选项卡中的标记。数据 table 看起来像:
ID Values
1 365
2 65
3 32
3 125
4 74
5 98
6 107
我想根据 ID 的不同计数限制引入此新可视化的数据。
我目前正在使用
"Limit Data by Expression" 属性部分。
我的表情在哪里
UniqueCount(ID) <= 1000
这很完美,但是,我还希望它显示一条消息,例如
"Too many IDs selected. Max Limit is 1000"
我正在考虑使用 属性 控件来执行此操作,其中 属性 控件会触发铁 python 脚本。关于如何编写该脚本有什么建议吗?
一个 work-around 将使用页面上的小文本区域(可能作为 header)。您可以 Insert Dynamic Item
-> 计算值或图标,并让它根据标记(选择)执行计数或唯一计数。例如,一旦 Count(ID) > 1000,文本可以变为红色,或者图标可以变为颜色。这是一个 processing-light 替代方案,不一定会创建 pop-up,但仍然可以向用户提供即时通知,告知他们已选择了太多行。
编辑如下:
<!-- 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]
我没有测试大部分代码,我提供它作为开始思考问题的地方,而不是交钥匙解决方案。希望它只需要稍作调整就可以工作。
我正在按需加载数据 table 并将其链接到上一个选项卡中的标记。数据 table 看起来像:
ID Values
1 365
2 65
3 32
3 125
4 74
5 98
6 107
我想根据 ID 的不同计数限制引入此新可视化的数据。
我目前正在使用 "Limit Data by Expression" 属性部分。 我的表情在哪里
UniqueCount(ID) <= 1000
这很完美,但是,我还希望它显示一条消息,例如 "Too many IDs selected. Max Limit is 1000"
我正在考虑使用 属性 控件来执行此操作,其中 属性 控件会触发铁 python 脚本。关于如何编写该脚本有什么建议吗?
一个 work-around 将使用页面上的小文本区域(可能作为 header)。您可以 Insert Dynamic Item
-> 计算值或图标,并让它根据标记(选择)执行计数或唯一计数。例如,一旦 Count(ID) > 1000,文本可以变为红色,或者图标可以变为颜色。这是一个 processing-light 替代方案,不一定会创建 pop-up,但仍然可以向用户提供即时通知,告知他们已选择了太多行。
编辑如下:
<!-- 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]
我没有测试大部分代码,我提供它作为开始思考问题的地方,而不是交钥匙解决方案。希望它只需要稍作调整就可以工作。