簡體   English   中英

在Javascript API中處理Tableau日期過濾器?

[英]Handling Tableau Date Filters in Javascript API?

我一直在研究tableau提供的JavaScript API教程

過濾器選項在“區域”過濾器上效果很好,但是由於某些原因在“年份”過濾器上停滯了。 這是我的代碼:

var viz;
var workbook;

// Initialize the javascript controls for Tableau
window.onload=function() {
    var vizDiv = document.getElementById('viz');
    var vizURL = 'http://public.tableau.com/views/WorldIndicators/GDPpercapita';
    var options = {
        width: '600px',
        height: '540px',
        hideToolbar: true,
        hideTabs: true,
        onFirstInteractive: function() {
        document.getElementById('sheetName').innerHTML=viz.getWorkbook().getActiveSheet().getName();
        }
    }
    viz = new tableauSoftware.Viz(vizDiv,vizURL, options);
};

// Filter By Years
function addValuesToFilter() {
    activeSheet = viz.getWorkbook().getActiveSheet();
    activeSheet.applyFilterAsync(
    "Year",
    ["2002", "2003"],
    tableau.FilterUpdateType.ADD);
}

// WORKING Filter Region
function addValuesToFilter() {
    activeSheet = viz.getWorkbook().getActiveSheet();
    activeSheet.applyFilterAsync(
    "Region",
    ["Europe", "The Americas"],
    tableau.FilterUpdateType.ADD);
}

因此,我認為必須有一些“ getProperty”函數來轉儲列名之類的東西,但是該API很少,而且我不是一個很好的程序員。 我已經看過.twb文件的xml,但是它主要是mumbo-jumbo,很難弄清楚其中發生的事情。
我在哪里錯了? 在哪里可以找到過濾器名稱列表,或者在Tableau中日期過濾器的處理方式可能有所不同?

我不知道您是否曾經想過,但是我到這里來尋找其他東西,所以也許這會對某人有所幫助。

這是我列出過濾器名稱的方法。

activeSheet.getFiltersAsync().then(function(filters) {
    for (var x=0; x<filters.length; x++) {
        console.log(filters[x].getFieldName());
    }
});

如果過濾器確實命名為“年份”,請嘗試使用更具描述性的名稱。 它是否可能與Tableau中的另一個屬性發生沖突? 在某些情況下,日期過濾器的處理方式確實有所不同(例如,如果該過濾器依賴於先前應用的另一個過濾器)。

過濾器名稱列表對我有所幫助。

一旦有了過濾器名稱(例如“ YEAR(日期(年))”),便可以進行以下操作。

function addYearToFilter() {
  activeSheet.applyFilterAsync(
      "YEAR(Date (year))",
      ["2008","2009"],
     tableau.FilterUpdateType.ADD);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM