objet scriptable du rapport actuelSalut,
Quelle est la meilleure façon d'obtenir l'objet scriptable du rapport actuel ?
S'il s'agit d'un objet Graph Builder, je peux utiliser
gb = Current Report()["Graph Builder"] << get scriptable object
C'est étonnamment robuste, mais cela ne fonctionne que pour les objets Graph Builder. Cela fonctionne même lorsque l'utilisateur a modifié le titre.
S'il n'y a pas de Graph Builder, je peux essayer
so = Current Report()[Outline Box( 1 )] << get scriptable object
Cela fonctionnera s'il n'y a pas de filtre de données local ,
pas de commutateur de colonne [ah, le commutateur de colonne est un ColumnSwitcherContextOutlineBox , pas de OutlineBox ]
et aucun tableau de bord défini par l'utilisateur [ah, le tableau de bord est créé via des TabPageBox , pas des OutlineBox ]
Pour le cas du filtre de données local , je pourrais vérifier le titre :
ob = Current Report()[Outline Box( 1 )];
If( (ob << Get Title) == "Local Data Filter",
ob = Current Report()[Outline Box( 2 )]
);<BR />ob << get scriptable object;
Cette approche fonctionne uniquement avec le paramètre de langue anglaise et uniquement si l'utilisateur n'a pas modifié le titre de l' OutlineBox .
Il est donc préférable de vérifier si l’objet scriptable est un filtre de données :
Try (so = Current Report()[Outline Box( 1 )] << get scriptable object;
if (Char(Head(so)) == "Data Filter[]" ,
so = Current Report()[Outline Box( 2 )] << Get Scriptable Object),
Caption("failed to get a scriptable object") // user defined Dashboard
)
Automatisation et scriptsRe: objet scriptable du rapport actuelUtiliser l'attribut XML « @helpKey »
Names Default To Here(1);
obs = Current Report() << XPath("//OutlineBox[@helpKey and not(@helpKey = 'Data Filter')]");
If(N Items(obs) > 0,
obj = obs[1] << Get Scriptable Object;
Show(obj);
);
Write();
La requête XPath peut nécessiter des modifications supplémentaires en fonction de l'endroit où elle doit fonctionner. Notez qu'avec XPath, vous pouvez rencontrer des problèmes où la requête XPath de JMP n'est pas en mesure de gérer le XML ( Comment activer XML_PARSE_HUGE pour << XPath() ? ).
Re: objet scriptable du rapport actuelAh, sympa. Merci.
Re: objet scriptable du rapport actuelToute la question peut devenir discutable si, au lieu d’utiliser
Distribution(
Continuous Distribution( Column( :height ), Process Capability( 0 ) ),
Local Data Filter
);
ob = Current Report()[Outline Box( 1 )];
If( (so << Get Title) == "Local Data Filter",
ob = Current Report()[Outline Box( 2 )]
);
ob << get scriptable object;
Si l'objet scriptable est obtenu lors de l'exécution de la plateforme
ob = Distribution(
Continuous Distribution( Column( :height ), Process Capability( 0 ) ),
Local Data Filter
);
Même si plusieurs plates-formes sont exécutées et que l'objet scriptable est référencé à l'aide de la même variable JSL, une simple liste JMP peut être utilisée pour rassembler l'objet scriptable, évitant ainsi toute la confusion que Current Report() peut apporter.
À l'aide de la table de données d'exemple Big Class, le script suivant illustre comment l'obtention de l'objet scriptable au point d'exécution contourne le problème Current Report()
names default to here(1);
dt=current data table();
objectList = {};
dis = Distribution(
Continuous Distribution( Column( :height ), Process Capability( 0 ) )
);
insert into(objectList, dis);
show(current report()[outlinebox(1)]<<GET title=""></GET>
<P>Un élément de la liste de souhaits pour une nouvelle fonction appelée</P>
<CODE class=" language-jsl"><< Get Current Report Scriptable Object
pourrait être justifié
Re: objet scriptable du rapport actuelma principale application:
Une commande pour régler/interagir avec n'importe quel rapport « existant ».
Il n’y a donc aucune chance de remplir une liste.
@txnelson wrote:
Un élément de la liste de souhaits pour une nouvelle fonction appelée
<< Get Current Report Scriptable Object
pourrait être justifié
d'accord:
message : Obtenir l'objet scriptable du rapport actuel
ob & so -> corrigé dans le post principal