Tableau中的动态参数

时间:2017-09-15 01:01:26

标签: javascript tableau

所以我的印象是,在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,看起来非常即插即用。但是,我的参数结果没有变化。注意,可能的原因是参数实际上是整数和列表,与教程不同。

对问题的任何见解?

1 个答案:

答案 0 :(得分:0)

我也从互联网上看到了那个链接,但遇到了一些问题。我能够利用他们的一些代码来使用动态参数。在下面的代码中,更新您的服务器的网址,指向您的工作簿,参数&amp;工作簿中使用的过滤器。我对html和javascript的了解很少,因此代码可能不够漂亮或高效,但它确实对我有用。如果您遇到任何问题,请告诉我。

注 - 为了使用Tableau Javascript API,工作簿需要位于tableau服务器上。

<body onload="initViz();">
<div id="vizContainer" style="width:800px; height:700px;"></div>

</body>

</html>

X