안녕하세요, 저는 다음 디스커버리 토크에 제공된 스크립트를 기반으로 다중 탭 대시보드를 만들고 있습니다. https://community.jmp.com/t5/Discovery-Summit-Americas-2021/One-Multi-tabbed-Filterable-Dashboard-2021-US-30MP-803/ta-p/398667
여러 대시보드를 결합하는 데 사용되는 스크립트는 다음과 같습니다.
dashes = Find All(Reports);
tb = Expr(Tab Box());
For(i = 1, i<= N Items(dashes), i ++,
tabPage = Expr(Tab Page Box());
dfcb = Expr(Data Filter Context Box());
lub = Expr(Line Up Box(N Col(2)));
hlb = Expr(H List Box());
//Get Data table name to use with the data filter
wintitle = dashes[i] << Get Window Title;
wordone = Word(1, wintitle, "-");
wordtwo = Word(2, wintitle, "-");
dtname = Substr(wordone, 1, Length(wordone)-1 );
dt = Eval Expr(Data Table(Expr(dtName)));
//Get dashboard name
dashName = Substr(wordtwo, 2);
failed = 0;
j = 1;
//Loop through the tab page boxes in the dashboard, and extract the scripts
While(failed ==0,
Try(tpb = dashes[i] << Find(TabPageBox(j)),
failed = 1; Continue();
);
//Try to get the script from the display box if it exisits
Try(obj = tpb << Get Scriptable Object;
script = obj << Get Script,
j ++; Continue();
);
//If the script is for the local data filter add the script to the H List Box
If(Char(Head(Name Expr(script))) == "Data Filter",
FilterExprStr = char(NameExpr(dt)) || " << " || char(Name Expr(script));
FilterExpr = Parse(FilterExprStr);
Insert Into(hlb,NameExpr(FilterExpr));
,
//Else add it to the lineup box
If( Char(Name Expr(script)) != "Scriptable[]",
reportExprStr = char(NameExpr(dt)) || " << " || char(Name Expr(script));
reportExpr = Parse(reportExprStr);
scrollbox = Expr(Scroll Box());
Insert Into(scrollbox, Name Expr(reportExpr));
Insert Into(lub,Name Expr(scrollbox));
);
);
j ++;
);
//Build up the display boxes
Insert Into(hlb, Name Expr(lub));
Insert Into(dfcb, Name Expr(hlb));
Insert Into(tabPage, Eval Expr(Title(Expr(dashName))), 1);
Insert Into(tabPage, Name Expr(dfcb), 2);
Insert Into(tb, Name Expr(tabPage));
);
//Create combined dashboard window
New Window("Ac-225 trending tool, v0.1", tb);
//Close all the individual dash reports
For( w = 1, w <= N Items(dashes), w ++,
dashes[w] << Close Window;
);
그러나 Discovery Talk와 달리 내 대시보드는 단일 데이터 테이블이 아닌 다른 데이터 테이블을 기반으로 합니다.
모든 데이터 테이블과 대시보드를 열고 위의 스크립트를 실행하여 모든 대시보드를 하나의 다중 탭 대시보드로 결합합니다. 그러면 다음과 같은 오류 메시지가 나타납니다.

내 대시보드에서 로컬 데이터 필터를 추출할 수 없는 것 같습니다. 열려 있는 모든 대시보드를 결합할 수 있도록 일반 스크립트를 변경하는 방법에 대한 제안이 있습니까?
아니면 여러 개의 열린 대시보드를 다중 탭 대시보드로 결합하는 다른 솔루션일까요?
업데이트:
위의 오류 메시지는 데이터 원본이 여러 테이블인 것과 관련이 없습니다. 반면에 데이터 테이블 중 하나의 이름에 하이픈(-)이 포함되어 있으면 CombineDashboards.jsl이 작동하지 않습니다. 이름에서 하이픈을 제거하면 문제가 해결됩니다.