2017-09-15 15 views
0

私は、HTMLのJSではTableauで動的パラメータを実行できるという印象を受けています。ここに私のコードは次のとおりです。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

私はまた、インターワークからのリンクに出くわしましたが、いくつかの問題に遭遇しました。動的パラメータを使用するために、コードの一部を活用することができました。次のコードでは、サーバーでURLを更新し、ワークブックをポイントし、ブック内でパラメーター&フィルターを使用します。私のhtmlとjavascriptの知識は、コードがきれいでないか、効率的でない可能性がありますが、私にとってはうまくいきます。あなたが何か問題に遭遇したら私に教えてください。

注 - Tableau Javascript APIを使用するには、ワークブックをTableauサーバーに配置する必要があります。

<!DOCTYPE html> 
<html> 

<head> 
<title>Prototype</title> 
<script type="text/javascript" src="https://yourserver/javascripts/api/tableau-2.min.js"></script> 
<script type="text/javascript"> 
var viz, containerDiv 
    function initViz() { 
     containerDiv = document.getElementById("vizContainer"), 
      url = "https://yourserver/views/yourworkbook/yourdashboard", 
      options = { 
        onFirstInteractive: function() { 
        console.log("Run this code when the viz has finished loading."); 
        mainWorkbook = viz.getWorkbook(); 
       } 
      }; // end options 

     // Create a viz object and embed it in the container div. 
     viz = new tableau.Viz(containerDiv, url, options); 
     viz.addEventListener(tableauSoftware.TableauEventName.FILTER_CHANGE, function(e){ 
      if (e.getFieldName() == 'Filter1'){ 
      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'; 
       } 
       viz.getWorkbook().changeParameterValueAsync('Parameter1', value); 
      }); 
      } // end if statement 
     }); // end event listener 
    } // end initViz 
</script> 

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

</body> 

</html> 
+0

あなたのワークブックには何も変更しましたか? – dcrowley01

+0

最初の '

関連する問題