![](/img/trans.png)
[英]Tableau JS filter: Using javascript API, move filters from one dashboard to another
[英]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.