TIBCO SPOTFIRE 7.5-如何使用复选框值设置文档属性

时间:2016-11-18 15:49:54

标签: spotfire

在TIBCO SPOTFIRE 7.5中,我有一个问题是设置一个文件属性,其复选框中选择了值:我必须使用" OR" 2个复选框过滤器之间的子句(它总是在" AND"中),所以我想设置2个带有选中值的文档属性(2复选框)并在限制表达式中使用它们。

有人可以帮助我吗?

TNX

1 个答案:

答案 0 :(得分:3)

我将在此列出两个可能的答案,其复杂程度不同。使用哪种解决方案取决于您对可以使用的UI控件的要求有多强。

选项1 - 使用属性控制

将两个属性控件添加到文本区域以设置将用于限制数据的文档属性。每个属性控件都将设置为从数据中的列中选择值,例如像Film示例数据一样:

使用上面的两个属性控件,向可视化中添加数据限制表达式(可视化属性 - >数据 - >使用表达式限制数据)。设置这样的表达式:

[Actor] = "${Actor}" OR [Actress] = "${Actress}"

在这里,我使用了[Actor]列来匹配文档属性Actor或列[Actress]的值,以匹配文档属性Actress的值。

选项2 - 使用JavaScript

如果您确实需要将UI作为复选框,那么没有Spotfire控件来处理它。如果允许用户进行的选择是静态的,那么此选项相当简单。如果您需要基于数据的选项,则需要更多工作。

让我们从静态案例开始。在textarea中,添加一个输入字段,然后将html修改为类似于此的内容:

<label><input type="checkbox" value="check1"> Checkbox1</label><br>
<label><input type="checkbox" value="check2"> Checkbox2</label><br>
<label><input type="checkbox" value="check3"> Checkbox3</label><br>

<div id='mySpotfireControl' style='display:none'>
  <SpotfireControl id="344f7da2bc5d4baca88c7e76cb7d429b" />
</div>

还要在文本区域添加javascript,类似于:

$("input[type='checkbox']").change(function(){
  var jsValue = $(this).val();
  $('#mySpotfireControl input').val(jsValue).blur()
})

这会将复选框中的值移动到Spotfire文档属性中。从那里,您可以添加与使用上述解决方案1时相同的限制表达式。

如果您需要生成一组可用的复选框,则需要动态生成文本区域的html。您可以通过编写检查当前数据的IronPython脚本来完成此操作,并为文本区域创建html。这个IronPython脚本需要以某种方式被调用,如果你想要它是全自动的,你可以从打开分析时运行的数据函数中触发它。