我一直在该画面提供的JavaScript API Tutorial工作。
过滤器选项在区域过滤器上运行良好,但出于某种原因在"年"过滤。这是我的代码:
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,但它主要是大笨蛋,很难在那里发生什么事情。 。
我在哪里错了?有没有我可以获得过滤器名称列表的地方,或者在Tableau中可能以不同方式处理日期过滤器?
答案 0 :(得分:1)
我不知道你是否想过这个,但我到这里寻找别的东西,所以这可能对某人有帮助。
这是我如何列出过滤器名称。
activeSheet.getFiltersAsync().then(function(filters) {
for (var x=0; x<filters.length; x++) {
console.log(filters[x].getFieldName());
}
});
如果过滤器确实命名为&#34;年&#34;,请尝试使用更具描述性的名称。它可能与Tableau中的另一个属性冲突吗?在某些情况下,日期过滤器的处理方式会有所不同(例如,如果此过滤器依赖于之前应用的另一个过滤器)。
答案 1 :(得分:1)
过滤器名称列表帮助了我。
一旦我有过滤器名称(例如“年(日期(年))”),以下工作。
std::error_condition