使用javascript更改Spotfire文档属性值

时间:2016-05-23 19:22:58

标签: javascript properties document tibco spotfire

我想在spot fire中更改分配给Document Property的值。假设我已经创建了一个名为" Test1"作为一个字符串,并为其分配一个值" a"。每次加载Spotfire仪表板时,是否有办法使用Javascript更改此值?

4 个答案:

答案 0 :(得分:1)

我不知道如何使用JavaScript,但您可以通过自定义表达式(如果它是列表框)分配string文档属性,或者每次值更改时运行IronPython脚本。因此,您可以将表达式设置为当前日期datetimenow(),然后每次加载时都会触发IronPython脚本。但是,我不明白为什么你需要属性控制。

我想这实际上取决于你想要将文档属性设置为什么。它是您桌子上的数据吗?复杂代码的输出?这些都是需要考虑的事情。

答案 1 :(得分:1)

1)使用您想要更改的文档属性创建输入类型属性控件。

2)编辑Html为父元素分配一个id" testInput"。并在编辑HTML窗口中添加如下所示的脚本。

<span id="testInput"><SpotfireControl id="7db34e6c423240f59fc99e6b80fa23ec" /></span>


<script>
$("#testInput input").val("after");
$("#testInput input").focus();
$("#testInput input").blur();
</script>

3)此脚本将文件属性值更改为&#34;&#34;无论何时打开文件。

答案 2 :(得分:0)

正如你的评论似乎暗示的那样,你可以做的是用Python编写这段代码并将脚本附加到动作控件e.i.链接或按钮。简单的事情:Document.Properties["Test1"] = newValue 甚至:Document.Properties[changingProperty] = newValue 允许代码更可重用。

然后您将Javascript插入文本区域以及:$("#VeryLongSpotfireControlID").click();

的效果

应该模拟单击操作控件,然后触发Python脚本更新值。注意不要使用这种方法,因为这会导致重新加载文本区域HTML,因为这将重新触发Javascript,从而创建一个无限循环。

答案 3 :(得分:0)

我相信我已经找到了一个可能的解决方案/解决方法,它完全基于纯JavaScript(因为TIBCO从Spotfire X开始删除了jQuery)。解决方案是在聚焦输入框时触发模拟的Enter键,以触发更新文档属性。 (无需数据功能和R)

HTML(SpotfireControl元素是文档属性的单行输入框):

<div id="container"><SpotfireControl id="b8534f13dc62416db6d4eaab16030f5e" /></div>

JS(此解决方案可能不再需要聚焦和模糊处理,但我还是以防万一):

const inputConfirmationEvent = new KeyboardEvent("keypress", {
    keyCode: 13,
    bubbles: true,
    cancelable: false
});

var elem = document.querySelector("#container input");
elem.value = "stringValue";
elem.blur();
elem.focus();

document.querySelector("#container input").dispatchEvent(inputConfirmationEvent);

希望它可以帮助某人。

最好, 亚伦