您好,我正在根据以下发现谈话中给出的脚本创建一个多选项卡式仪表板: https://community.jmp.com/t5/Discovery-Summit-Americas-2021/One-Multi-tabbed-Filterable-Dashboard-2021-US-30MP-803/ta-p/398667
用于组合多个仪表板的脚本如下:
<
破折号=查找所有(报告);
tb = Expr(标签框());
For(i = 1, i<= N 项(破折号), i ++,
tabPage = Expr(标签页框());
dfcb = Expr(数据过滤器上下文框());
lub = Expr(Line Up Box(N Col(2)));
hlb = Expr(H 列表框());
//获取要与数据过滤器一起使用的数据表名称
wintitle = dashes[i] << 获取窗口标题;
wordone = Word(1, wintitle, "-");
wordtwo = Word(2, wintitle, "-");
dtname = Substr(wordone, 1, Length(wordone)-1 );
dt = Eval Expr(数据表(Expr(dtName)));
//获取仪表盘名称
dashName = Substr(wordtwo, 2);
失败 = 0;
j = 1;
//遍历仪表板中的标签页框,并提取脚本
而(失败==0,
尝试(tpb = 破折号 [i] << 查找(TabPageBox(j)),
失败 = 1;继续();
);
//如果存在则尝试从显示框中获取脚本
尝试(obj = tpb << 获取脚本对象;
script = obj << 获取脚本,
j++;继续();
);
//如果脚本用于本地数据过滤器,则将脚本添加到 H 列表框
If(Char(Head(Name Expr(script))) == "数据过滤器",
FilterExprStr = char(NameExpr(dt)) || “<<” ||字符(名称表达式(脚本));
FilterExpr = Parse(FilterExprStr);
插入 (hlb,NameExpr(FilterExpr));
,
//否则将其添加到阵容框中
If( Char(Name Expr(script)) != "Scriptable[]",
reportExprStr = char(NameExpr(dt)) || “<<” ||字符(名称表达式(脚本));
reportExpr = Parse(reportExprStr);
scrollbox = Expr(滚动框());
Insert Into(scrollbox, Name Expr(reportExpr));
Insert Into(lub,Name Expr(scrollbox));
);
);
j++;
);
//建立显示框
插入(hlb,名称 Expr(lub));
插入(dfcb,名称 Expr(hlb));
Insert Into(tabPage, Eval Expr(Title(Expr(dashName))), 1);
Insert Into(tabPage, Name Expr(dfcb), 2);
插入(tb,名称 Expr(tabPage));
);
//创建组合仪表盘窗口
新窗口(“Ac-225 趋势工具,v0.1”,待定);
//关闭所有单独的破折号报告
For( w = 1, w <= N 项(破折号), w ++,
破折号[w] << 关闭窗口;
);
>
然而,与发现谈话相反,我的仪表板基于不同的数据表,而不是单个数据表。
我打开了所有数据表和仪表板,并运行上述脚本以将所有仪表板组合成一个多选项卡式仪表板。 这会给出以下错误消息:

看起来它无法从我的仪表板中提取本地数据过滤器。 关于如何更改通用脚本以便能够组合所有打开的仪表板的任何建议?