Tableau JavaScript API-获取所选值

Tableau JavaScript API-获取所选值,javascript,tableau-api,Javascript,Tableau Api,我目前正在研究通过JavaScript API从Tableau报告中获取数据的可能性,但在过滤后从图形中获取值的方法是通过selectSingleValue()方法选择值 例如: 在名为“选择”的API教程选项卡中。其中一个示例选择了行“中国马考骚”。是否有可能提取5200美元的数值 我已经尝试查看返回的对象(通过FireBug),但似乎找不到正确的对象。我最近的位置在getActiveSheets()中 任何帮助都将不胜感激。在JavaScript API教程选项卡“事件”中,它向您展示了如何

我目前正在研究通过JavaScript API从Tableau报告中获取数据的可能性,但在过滤后从图形中获取值的方法是通过selectSingleValue()方法选择值

例如:

在名为“选择”的API教程选项卡中。其中一个示例选择了行“中国马考骚”。是否有可能提取5200美元的数值

我已经尝试查看返回的对象(通过FireBug),但似乎找不到正确的对象。我最近的位置在getActiveSheets()中


任何帮助都将不胜感激。

在JavaScript API教程选项卡“事件”中,它向您展示了如何添加事件侦听器以返回所选标记。然后,您可以通过循环标记来获得所需的值

将下面的代码块复制到一个文件中,另存为html并在您喜爱的web浏览器中打开(在ie11上测试)


表8 Javascrip API
/////////////////////
//全局变量
变量viz、工作簿、活动表
//viz在工作簿中选择的标记上调用的函数
MarksSelection(marksEvent)上的函数{
返回marksEvent.getMarksAsync()。然后(reportSelectedMarks);
}
功能报告SelectedMarks(标记){
对于(var-markIndex=0;markIndex
<html>
<head>
<meta charset="utf-8">
<title>Tableau 8 Javascrip API</title>
<script type="text/javascript" src="http://public.tableausoftware.com/javascripts/api/tableau_v8.js"></script>
<script type="text/javascript">
/////////////////////
// Global variables
var viz, workbook, activeSheet

// function called by viz on marks being selected in the workbook
function onMarksSelection(marksEvent) {
  return marksEvent.getMarksAsync().then(reportSelectedMarks);
}

function reportSelectedMarks(marks) {
    for (var markIndex = 0; markIndex < marks.length; markIndex++) {
        var pairs = marks[markIndex].getPairs();
        for (var pairIndex = 0; pairIndex < pairs.length; pairIndex++) {
            var pair = pairs[pairIndex];
            if (pair.fieldName == "AVG(F: GDP per capita (curr $))") {
                alert("You selected a country with an avg GPD per capita of " + pair.formattedValue);
            }
        }
    }
}


// Initialise the viz to hold the workbook
function initializeViz(){
     var placeholderDiv = document.getElementById("tableauViz"); 
     var url = "http://public.tableausoftware.com/views/WorldIndicators/GDPpercapita?Region="; 
     var options = {
          width: "800px", //width: placeholderDiv.offsetWidth,
          height: "400px", //height: placeholderDiv.offsetHeight,
          hideTabs: true,
          hideToolbar: true,
          onFirstInteractive: function () {
                workbook = viz.getWorkbook();
                activeSheet = workbook.getActiveSheet();
          }
     };
     viz = new tableauSoftware.Viz(placeholderDiv, url, options);    
    // Add event listener
    viz.addEventListener(tableauSoftware.TableauEventName.MARKS_SELECTION, onMarksSelection);
}
</script>
</head>
<body>
<!-- Tableau view goes here -->
     <div id="tableauViz" style="height:1200px; width:1200px"\></div>
     <script type='text/javascript'>
     //Initialize the viz after the div is created
     initializeViz();
     </script>
</body>
</html>