Comment modifier une DisplayBox existante avec JSL<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />J'essaie de créer un bouton qui modifiera la sortie de la boîte de dialogue Ajuster le modèle () pour inclure un R2 prédit dans le tableau Résumé de l'ajustement.Je récupère la fenêtre actuelle et je dois ensuite activer la statistique PRESS.Après c'est assez simple et ça marche surtout si j'ai déjà activé la statistique PRESSE via le menu du concours.Cela fonctionne également si je code moi-même la boîte de dialogue Ajuster le modèle et que j'utilise la ligne deux pour activer la statistique PRESS, puis l'envoyer au rapport.Le problème que je rencontre est que la capture de Current Window() récupère une DisplayBox sans aucun moyen de demander à la plate-forme de faire des choses.J'ai envisagé simplement de récupérer le script pour créer la fenêtre, de fermer l'original et d'en exécuter une nouvelle (un scintillement rapide de l'écran n'est pas si mal), mais le << Get Script renvoie la structure arborescente, pas le script Fit Model().Y a-t-il quelque chose de facile qui me manque ?J'écris ceci dans JMP 9, si cela peut aider.J'espère qu'il est compatible JMP 8, mais ce n'est pas important.Merci!
dg = Current Window();dg << PRESS; /###/press = dg[NumberColBox("Press RMSE")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];predR = 1-press/sst;values = dg[NumberColBox(1)] << Get as Matrix;newvalues = J(1,6);newvalues[1::2] = values[1::2];newvalues[3] = predR;newvalues[4::6] = values[3::5];dg[StringColBox(1)] << Set Values({"RSquare","RSquare Adj","RSquare Pred","Root Mean Square Error","Mean of Response","Observations (or Sum Wgts)"});dg[NumberColBox(1)] << Set Values(newvalues);Re : Comment modifier une DisplayBox existante avec JSLMS - l'objet Get Scriptable résout parfaitement le problème !Je vois en quoi le fait d'avoir un « groupe » pourrait poser des problèmes, mais je ne pense pas que ce sera un réel problème étant donné le type de travail que nous faisons ici.Merci beaucoup de m'avoir conduit à la solution !
dg = Current Window();fm = dg[OutlineBox(1)] << Get Scriptable Object;fm << PRESS(1);press = dg[NumberColBox("Press")] << Get as Matrix;press = press[1];ss = dg[NumberColBox("Sum of Squares")] << Get as Matrix;lastrow = Nrow(ss);sst = ss[lastrow];Re : Comment modifier une DisplayBox existante avec JSLOK je vois. La raison pour laquelle <
Il m'a fallu un certain temps pour comprendre, mais l'approche ci-dessous, utilisant <
dt = Ouvrir ( "$ENGLISH_SAMPLE_DATA/Grande Classe.jmp" ) ;
Modèle adapté (
Oui ( : poids ) ,
Effets ( : hauteur ) ,
Personnalité ( Moindres carrés standards ) ,
Accent ( Rapport minimal ) , Courir
) ;
ajuster = Fenêtre ( "Grande classe : ajuster les moindres carrés" )[ boîte de contour ( 1 )] << obtenir un objet scriptable ;
ajuster << Presse ( 1 ) ;
imprimer ( ajuster << obtenir le script ) //Get Script fonctionne comme prévu !
Comment modifier une DisplayBox existante avec JSLMS - merci pour votre réponse rapide!Le problème est que pour que cela se déploie comme je le souhaite, il ne peut pas inclure la partie ci-dessous.
fit = Fit Model( Y( :ABRASION ), Effects( :SILICA, :SILANE ), Personality( Standard Least Squares ), Emphasis( Minimal Report ), Run( :ABRASION << {Plot Actual by Predicted( 0 ), Plot Regression( 0 ), Plot Residual by Predicted( 0 ), Plot Effect Leverage( 0 )} ));dg = Report( fit );
Je souhaite pouvoir le déployer en tant que complément permettant aux utilisateurs finaux de pouvoir simplement appuyer sur leur barre d'outils après avoir ajusté un modèle à l'aide de l'interface JMP typique et lui faire ajouter les informations importantes.
Ce qui m'embrouille, c'est que je ne peux pas, via JSL, accéder au menu contextuel de la fenêtre si JMP l'a créé plutôt que JSL le crée.Je peux accéder facilement aux menus de niveau supérieur via JSL, mais pas au menu contextuel.De plus, je ne comprends pas pourquoi le message << Get Script renvoie l'arborescence de la fenêtre plutôt qu'un script JSL pour la créer comme ce que propose le menu contextuel.Je sais que JMP peut faire les choses que je veux, il me semble simplement que j'en suis bloqué par JSL.
Comment modifier une DisplayBox existante avec JSLJe ne sais pas exactement ce que vous essayez de faire, mais je pense que vous devez envoyer le message Press(1) à un objet Fit Model plutôt qu'à un objet Window. Comme dans l'exemple ci-dessous (Exécutez puis cliquez sur "PRESS"). Fonctionne dans JMP9 (Mac).
dt = Ouvrir ( "$English_Sample_Data/Tiretread.jmp" ) ;
ajuster = Modèle adapté (
Oui ( : ABRASION ) ,
Effets ( : SILICE , : SILANE ) ,
Personnalité ( Moindres carrés standards ) ,
Accent ( Rapport minimal ) ,
Courir (
: ABRASION << { Tracer le réel par prévu ( 0 ) , Régression du tracé ( 0 ) , Tracer le résidu par prévision ( 0 ) ,
Effet de levier de l'effet de tracé ( 0 )}
)
) ;
dg = Rapport ( ajuster ) ;
dg << ajouter un préfixe (
Boîte à boutons ( "PRESSE" ,
ajuster << presse ( 1 ) ;
presse = dg [ Boîte de numéro de colonne ( "Appuyez sur RMSE" )] << Obtenir comme matrice ;
presse = presse [ 1 ] ;
ss = dg [ Boîte de numéro de colonne ( "Somme des carrés" )] << Obtenir comme matrice ;
dernière rangée = N rangée ( ss ) ;
sst = ss [ dernière rangée ] ;
prédR = 1 - presse / sst ;
valeurs = dg [ Boîte de numéro de colonne ( 1 )] << Obtenir comme matrice ;
nouvelles valeurs = J. ( 1 , 6 ) ;
nouvelles valeurs [ 1 :: 2 ] = valeurs [ 1 :: 2 ] ;
nouvelles valeurs [ 6 ] = prédR ;
nouvelles valeurs [ 3 :: 5 ] = valeurs [ 3 :: 5 ] ;
dg [ Boîte de col de chaîne ( 1 )] << Ajouter un élément ( "RSquare Préd" ) ; // Ajouter des valeurs ne fonctionne pas, d'où la réorganisation
dg [ Boîte de numéro de colonne ( 1 )] << Définir des valeurs ( nouvelles valeurs ) ;
)
) ;
Comment modifier une DisplayBox existante avec JSLJuste pour être clair, la première ligne, dg = Current Window(); renvoie DisplayBox[] dans le journal.Je cherche un moyen d'accéder aux menus contextuels de la fenêtre via JSL pour ajouter des éléments à l'arborescence afin de pouvoir les récupérer plus tard, en particulier comment signaler PRESS(1).Merci!
Re : Comment modifier une DisplayBox existante avec JSLJ'essayais de concevoir un script pour enregistrer le script dans la fenêtre de script pour une fenêtre Fit Group ouverte. Un script pour récupérer un script en d'autres termes. Pour ce faire, je dois créer le groupe Fit et l'objet et lui envoyer un message. Facile à faire manuellement, est-ce possible d’automatiser ?