Bonjour, je crée un tableau de bord à plusieurs onglets basé sur le script donné dans l'exposé de découverte suivant : https://community.jmp.com/t5/Discovery-Summit-Americas-2021/One-Multi-tabbed-Filterable-Dashboard-2021-US-30MP-803/ta-p/398667
Le script utilisé pour combiner plusieurs tableaux de bord est le suivant :
<
tirets = Rechercher tout (Rapports);
tb = Expr(Tab Box());
For(i = 1, i<= N Items(tirets), i ++,
tabPage = Expr(Tab Page Box());
dfcb = Expr(Boîte de contexte de filtre de données());
lub = Expr(Line Up Box(N Col(2)));
hlb = Expr(H List Box());
//Obtenir le nom de la table de données à utiliser avec le filtre de données
wintitle = tirets[i] << Obtenir le titre de la fenêtre ;
wordone = Word(1, wintitle, "-");
wordtwo = Word(2, wintitle, "-");
dtname = Substr(wordone, 1, Length(wordone)-1 );
dt = Eval Expr(Table de données(Expr(dtName)));
//Obtenir le nom du tableau de bord
dashName = Substr(wordtwo, 2);
échoué = 0 ;
j = 1 ;
// Parcourez les cases de la page d'onglet dans le tableau de bord et extrayez les scripts
Tandis que (échec ==0,
Try(tpb = tirets[i] << Find(TabPageBox(j)),
échoué = 1 ; Continuer();
);
//Essayez d'obtenir le script de la boîte d'affichage s'il existe
Try(obj = tpb << Obtenir un objet inscriptible ;
script = obj << Obtenir le script,
j++; Continuer();
);
//Si le script est destiné au filtre de données local, ajoutez le script à la zone de liste H
If(Char(Head(Name Expr(script))) == "Filtre de données",
FilterExprStr = char(NameExpr(dt)) || " << " || char(Nom Expr(script));
FilterExpr = Parse(FilterExprStr);
Insérer dans(hlb,NameExpr(FilterExpr));
,
// Sinon, ajoutez-le à la boîte de composition
Si( Char(Nom Expr(script)) != "Scriptable[]",
reportExprStr = char(NameExpr(dt)) || " << " || char(Nom Expr(script));
reportExpr = Parse(reportExprStr);
scrollbox = Expr(Scroll Box());
Insérer dans(boîte de défilement, Nom Expr(reportExpr));
Insert Into(lub,Name Expr(scrollbox));
);
);
j++;
);
//Construire les boîtes d'affichage
Insérer dans(hlb, Nom Expr(lub));
Insérer dans(dfcb, Nom Expr(hlb));
Insérer dans(tabPage, Eval Expr(Title(Expr(dashName))), 1);
Insérer dans(ongletPage, Nom Expr(dfcb), 2);
Insérer dans(tb, Nom Expr(tabPage));
);
//Créer une fenêtre de tableau de bord combinée
Nouvelle fenêtre("Outil de tendance Ac-225, v0.1", tb);
//Fermer tous les rapports de tableau de bord individuels
For( w = 1, w <= N Items(tirets), w ++,
tirets[w] << Fermer la fenêtre ;
);
>
Cependant, contrairement au discours de découverte, mes tableaux de bord sont basés sur différentes tables de données, et non sur une seule table de données.
Toutes les tables de données et tous les tableaux de bord sont ouverts et j'exécute le script ci-dessus pour combiner tous les tableaux de bord en un seul tableau de bord à plusieurs onglets. Cela donne le message d'erreur suivant :

Il semble qu'il ne soit pas en mesure d'extraire les filtres de données locaux de mes tableaux de bord. Une suggestion sur la façon dont je peux modifier le script générique pour pouvoir combiner tous les tableaux de bord ouverts ?