所以我的印象是,在HTML中使用JS可以在Tableau中执行动态参数。这是我的代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="http://public.tableau.com/javascripts/api/tableau-2.0.0.min.js"></script>
<script>
$(function() {
var url = 'points to dashboard url';
var vizOptions = {
showTabs : true,
hideToolbar : true,
width : "420px",
height : "420px"
};
currentViz = new tableauSoftware.Viz(document.getElementById('viz'), url, vizOptions);
currentViz.addEventListener(tableauSoftware.TableauEventName.FILTER_CHANGE, onFilterChange);
});
function onFilterChange(e)
{
if (e.getFieldName() == 'Department') {
e.getFilterAsync().then(function(filter) {
var values = filter.getAppliedValues();
var value = values[0]['value'];
// Value of the parameter if "All" is selected in the filter.
if (values.length > 1) {
value = 'All';
}
currentViz.getWorkbook().changeParameterValueAsync('Parameter1', value);
});
}
}
这段代码来自https://www.interworks.com/blog/daustin/2015/12/17/dynamic-parameters-tableau,看起来非常即插即用。但是,我的参数结果没有变化。注意,可能的原因是参数实际上是整数和列表,与教程不同。
对问题的任何见解?
答案 0 :(得分:0)
我也从互联网上看到了那个链接,但遇到了一些问题。我能够利用他们的一些代码来使用动态参数。在下面的代码中,更新您的服务器的网址,指向您的工作簿,参数&amp;工作簿中使用的过滤器。我对html和javascript的了解很少,因此代码可能不够漂亮或高效,但它确实对我有用。如果您遇到任何问题,请告诉我。
注 - 为了使用Tableau Javascript API,工作簿需要位于tableau服务器上。
<body onload="initViz();">
<div id="vizContainer" style="width:800px; height:700px;"></div>
</body>
</html>
X