Je construis un outil pour certains graphiques personnalisés. Je veux que l'outil soit facilement modifiable par les utilisateurs avec qui je le partage. Pour réduire la barrière à l'entrée, je voudrais utiliser des sous-fonctions que j'appelle dans une fonction maître. Chaque sous-fonction représenterait une plus petite partie de la fonction principale globale.
Ma question : est-il possible de remplacer les arguments de 'Dispatch' dans le générateur de graphes en tant que fonction ? Ou existe-t-il une autre approche standard pour créer des sous-fonctions plus petites dont je ne suis pas au courant.
Merci Jim pour la réponse complète. J'ai pensé que je devrais le passer sous forme de texte et l'analyser d'une manière ou d'une autre, mais je ne m'attendais certainement pas à ce que ce soit si laid! Eh bien, je suppose que c'est le prix que je paie pour avoir une telle exigence de niche. C'est parfait pour moi cependant. Tant que je peux cacher la plupart du code laid dans la fonction maître, je suis heureux car mon objectif est que cela soit laissé seul par l'utilisateur final. Je suis très preneur dans la communauté en ce moment, mais j'espère que je pourrai rembourser l'aide en contribuant à mesure que j'aurai plus d'expérience avec les scripts dans JMP.
Voici un code qui accomplit ce que vous voulez, mais ce n'est pas très joli.Ce que vous voulez, c'est pouvoir faire de la génération de code avec substitution, et cela n'est pas très bien géré dans JMP.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
myfunc = Function( {},
return =
"\[Dispatch(
{},
"2",
ScaleBox,
{Min( 92.9916666666667 ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)]\"
);
Eval(
Substitute(
Expr(
Bivariate( Y( :NPN1 ), X( :PNP1 ), SendToReport( __dispatch__ ) )
),
Expr( __dispatch__ ), Parse( myfunc )
)
);
JMP peut gérer le remplacement des composants au sein de la structure de la plate-forme, par exemple en transmettant une valeur minimale.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
mymin = 80;
Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
SendToReport(
Dispatch(
{},
"2",
ScaleBox,
{Min( Eval( mymin ) ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)
)
);
Ou ce que je crois être la méthode préférée, qui consiste à générer le graphique par défaut, puis à définir les paramètres après la génération, où un appel à une fonction pourrait être utilisé pour définir conditionnellement les éléments souhaités ;
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA\semiconductor capability.jmp" );
myfunc = function({},
Report( biv )[Axis Box( 1 )] << Min( 80 );
);
biv = Bivariate(
Y( :NPN1 ),
X( :PNP1 ),
SendToReport(
Dispatch(
{},
"2",
ScaleBox,
{Min( 92.9916666666667 ), Max( 127 ), Inc( 5 ), Minor Ticks( 1 ),
Add Ref Line( 118.356215277778, "Solid", "Black", "", 1 )}
)
)
);
myfunc;Salut Jim,
Merci pour la réponse. Cependant je vais essayer d'éclaircir un peu mon problème.
Disons que dans Graph Builder dans mon script JSL, j'ai un bloc de code tel que :
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(... etcDans ce cas, par exemple, je personnalise la couleur des lignes.
Est-il possible pour moi de créer une fonction dans un autre script JSL tel que :
myDispatch=Function(
{},
Dispatch(
{},
"400",
ScaleBox,
{Legend Model(.... etcpuis dans le script JSL, à la place de la fonction dispatch, j'aurais myDispatch().
J'ai essayé ceci, et bien qu'il n'enregistre aucune erreur, il n'applique pas ma fonction (c'est-à-dire que le graphique utilise simplement les couleurs de ligne par défaut, etc. et ignore ma fonction). Je ne peux pas le faire fonctionner sans taper explicitement les arguments dans le Graph Builder lui-même.
Merci beaucoup
Si vous regardez :
Aide==>Index des scripts==>Générateur de graphes
vous verrez tous les différents composants qui peuvent être manipulés dans Graph Builder, en transmettant des requêtes à la plate-forme.Tous ces éléments peuvent être placés dans des fonctions de construction utilisateur.
