La présentation du Sommet Découverte Un tableau de bord multi-onglets et filtrable présente un script universel pour générer un tableau de bord multi-onglets.J'utilise une copie de ce script (illustré ci-dessous) pour combiner une série de tableaux de bord en un seul tableau de bord à plusieurs onglets. Cependant, le script démonte tous les tableaux de bord et les combine à nouveau de manière 1 par 1 ou 2 par 2. Ainsi, un tableau de bord original avec deux graphiques superposés est converti en un tableau de bord avec les deux graphiques côte à côte.
Mes tableaux de bord sont basés sur plusieurs tables de données différentes et, par conséquent, il est difficile d'avoir des filtres de données locaux pour chacune des tables si je n'utilise que des onglets séparés dans le même tableau de bord.
Ce dont j'aurais besoin, c'est d'un script qui prend tous les tableaux de bord ouverts et les combine sans modifier la configuration des tableaux de bord. Des suggestions sur la façon de modifier le script ci-dessous ou de repartir de zéro ?
///////////////////////////////// Create Tabbed Dashboard //////////////////////////////////////////////////
wait( 2 );
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("Combined Dashboard", tb);
//Close all the individual dash reports
For( w = 1, w <= N Items(dashes), w ++,
dashes[w] << Close Window;
);