我正在編寫一些代碼,它應該根據數組的值自動過濾Tableau工作簿。Tableau JS Api Filter不接受變量
該函數的調用,通過:
showOnly2('Disponent',filterString);
'Disponent' 是硬編碼,filterString是這種格式的一個陣列:
['201','202','203','204','205','206','207','208','209']
在下面的代碼塊:
function showOnly2(filterName, values) {
document.getElementById("header").innerHTML = values;
sheet = viz.getWorkbook().getActiveSheet();
if(sheet.getSheetType() === 'worksheet') {
sheet.applyFilterAsync(filterName, values, 'REPLACE');
} else {
worksheetArray = sheet.getWorksheets();
for(var i = 0; i < worksheetArray.length; i++) {
worksheetArray[i].applyFilterAsync(filterName, values, 'REPLACE');
}
}
}
使用變量「values」調用worksheetArray[i].applyFilterAsync(filterName, values, 'REPLACE');
零件不起作用。
但是,如果我硬編碼數組公式的值:
worksheetArray[i].applyFilterAsync(filterName, ['201','202','203','204','205','206','207','208','209'] , 'REPLACE');
它就像一個魅力...可惜我不能硬編碼,如數字數組(我想要設置的過濾器值)隨時間變化。
有沒有人有想法,爲什麼變量版本不起作用?
(我也查範圍的問題,由該函數中實現document.getElementById("header").innerHTML = values;
,只是雙檢,數組值被正確讀取。
任何指針都大加讚賞。