我正在编写一些代码,它应该根据数组的值自动过滤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;
,只是双检,数组值被正确读取。
任何指针都大加赞赏。