Empêcher le défilement de la fenêtre lors de l'ajout de zones d'affichageExiste-t-il un moyen d'empêcher une fenêtre de défiler jusqu'à l'emplacement des cases ajoutées ?Dans l'exemple de script suivant, appuyer sur le bouton "Ajouter une spline" ajoutera une nouvelle spline avec la moitié de la valeur lambda de celle précédente, et après avoir appuyé sur le bouton environ 6 fois, la fenêtre défile du graphique jusqu'à l'emplacement du Spline de contrôle nouvellement ajoutée.
Ceci est un exemple : la solution N'EST PAS de simplement supprimer les autres cartes de contrôle de l'écran.Dans mon code actuel, je supprime la carte de contrôle avec la commande biv << (Curve[1] << Report( 0 )), mais elle défile néanmoins.
Toute aide serait grandement appréciée.
Merci!
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
obj << Fit Spline( n, Standardized );
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj = Bivariate( Y( :Weight ), X( :Height ) );
obj << Fit Spline( n, Standardized );
)
);Re : Empêcher le défilement de la fenêtre lors de l'ajout de boîtes d'affichageL'option n°2 consistant à ajouter la spline à la main a fait l'affaire. JMP dispose d'une fonction pratique pour calculer les splines, ce qui rend les choses très simples.Re : Empêcher le défilement de la fenêtre lors de l'ajout de boîtes d'affichageAvez-vous envisagé d'utiliser un rapport à onglets avec un sélecteur ?Voir l'image ci-dessous.Ou créez-vous une page avec plusieurs graphiques, par exemple côte à côte, pour chaque vue.
En outre, d'autres alternatives sont :
- Créez votre bivarié avec deux splines avec des cases réduites (cachées). Jusqu'à ce que l'utilisateur sélectionne une valeur ou le bouton, définissez la largeur de ligne de la 2ème spline sur 0 afin qu'elle ne soit pas visible. Permettez à l'utilisateur de sélectionner la valeur de la deuxième spline. En d’autres termes, vous n’ajoutez pas une tonne de splines, envoyez simplement un message pour modifier le facteur de lissage d’une d’entre elles. Cela éliminerait tout saut.
- Modifiez le comportement de votre bouton Ajouter une spline pour ajouter une courbe à l'aide d'Ajouter un script graphique, au lieu d'utiliser le message de l'interface utilisateur Ajuster la spline.Cela nécessiterait des scripts supplémentaires : utiliser des fonctions pour obtenir des coefficients, évaluer, choisir une couleur, ajouter le script graphique,
L'option n°1 serait la plus simple
Le curseur de l'interface utilisateur JMP anticipe ce que vous essayez d'émuler, l'utilisateur peut ajuster le facteur de lissage.

Re : Empêcher le défilement de la fenêtre lors de l'ajout de boîtes d'affichageMerci pour l'aide!Je vais voir si je peux faire fonctionner cela, mais je pense que cette méthode ne fonctionnera finalement pas pour moi -- je modifie une fonction qui est appelée par divers rapports pour générer les graphiques -- je ne peux pas ajouter de case de défilement à Les rapports.La seule solution à laquelle je puisse penser et qui fonctionnerait pour moi est simplement d'empêcher le nouveau contenu de déclencher le mécanisme de défilement.
Re : Empêcher le défilement de la fenêtre lors de l'ajout de boîtes d'affichageQuelle version de JMP utilisez-vous ?
Ci-joint 2 scripts : scrollers_ob.jsl et scrollers.jsl
Les deux sont essentiellement le même script, à l'exception de l'action de défilement.
scrollers_ob.jsl
- utilise simplement VListBox(), vlb et Scroll Window() dans la zone de contour qui contient le bouton sur lequel l'utilisateur vient d'appuyer. Cependant, si un utilisateur fait défiler jusqu'au 6ème affichage, une partie de l'affichage 5 s'affiche et fait apparaître l'affichage 6 vers le haut. L'utilisateur voit toujours le graphique qui l'intéresse et l'action de défilement est fluide.
scrollers0.jsl
- utilise un wrapper ScrollBox(), sb, pour vlb.Une ScrollBox a une fonction intéressante << obtenir la position de défilement. En utilisant cette fonction, pour définir la position de défilement, l'utilisateur verra exactement la même position, cependant, l'affichage est saccadé et non fluide.
Les deux scripts utilisent des expressions pour éliminer le code « à l'emporte-pièce » qui peut être difficile à lire et à maintenir. Notez qu'il crée des poignées/références à chaque boîte de boutons, chaque bivariée et chaque boîte de contour "affichage".Faites un clic droit sur n'importe quel bouton > sélectionnez modifier > sélectionnez définir le script pour voir la référence à bivarié, etc.
Pour information auprès des maîtres JSL, j'ai essayé d'utiliser Set Function() pour ButtonBox() et d'utiliser son parent et son frère. Cependant, j'ai été surpris, vlb << Scroll Window(this) n'a pas fonctionné pour moi.Il pourrait s'agir d'une erreur de codage. Je n'y ai pas consacré beaucoup de temps car je pensais que le code était peut-être trop obtus pour être informatif.
Re : Empêcher le défilement de la fenêtre lors de l'ajout de boîtes d'affichageMerci pour votre aide!Cependant, mon problème est que je ne veux pas qu'une partie du résumé soit affichée, je veux simplement que la spline soit dessinée.À cette fin, j'utilise les commandes Visibility( "Collapse" ) et (Curve[x] << Report(0)) , qui empêchent l'affichage des rapports.Cependant, l'écran bouge toujours comme s'il était affiché.
J'ai inclus un exemple plus complet ici.Cliquer sur le bouton pour ajouter la spline fait défiler immédiatement jusqu'au point où le graphique n'est plus visible, même si (au final) aucun nouveau contenu n'est affiché.
J'ai un rapport utilisé dans mon entreprise qui contient de nombreux graphiques dans une page comme cet exemple, et avoir la possibilité d'ajouter des splines de manière interactive est très utile, mais lorsque le graphique qui vous intéresse quitte l'écran, il le fait également. c'est vraiment une nuisance à gérer.
Toute aide serait grandement appréciée !
Names Default To Here( 1 );
n = 100;
New Window( "test",
V List Box(
Outline Box( "a display",
a1 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a1++;
obj1 << Fit Spline( n, Standardized ) << (Curve[a1] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj1 = Bivariate( Y( :Weight ), X( :Height ) );
obj1 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj1 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj1 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a2 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a2++;
obj2 << Fit Spline( n, Standardized ) << (Curve[a2] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj2 = Bivariate( Y( :Weight ), X( :Height ) );
obj2 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj2 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj2 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a3 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a3++;
obj3 << Fit Spline( n, Standardized ) << (Curve[a3] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj3 = Bivariate( Y( :Weight ), X( :Height ) );
obj3 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj3 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj3 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a4 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a4++;
obj4 << Fit Spline( n, Standardized ) << (Curve[a4] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj4 = Bivariate( Y( :Weight ), X( :Height ) );
obj4 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj4 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj4 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a5 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a5++;
obj5 << Fit Spline( n, Standardized ) << (Curve[a5] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj5 = Bivariate( Y( :Weight ), X( :Height ) );
obj5 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj5 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj5 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a6 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a6++;
obj6 << Fit Spline( n, Standardized ) << (Curve[a6] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj6 = Bivariate( Y( :Weight ), X( :Height ) );
obj6 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj6 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj6 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a7 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a7++;
obj7 << Fit Spline( n, Standardized ) << (Curve[a7] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj7 = Bivariate( Y( :Weight ), X( :Height ) );
obj7 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj7 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj7 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a8 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a8++;
obj8 << Fit Spline( n, Standardized ) << (Curve[a8] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj8 = Bivariate( Y( :Weight ), X( :Height ) );
obj8 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj8 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj8 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
),
Outline Box( "a display",
a9 = 1;
V List Box(
b = Button Box( "Add Spline",
n = n / 2;
a9++;
obj9 << Fit Spline( n, Standardized ) << (Curve[a9] << Report( 0 ));
),
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
obj9 = Bivariate( Y( :Weight ), X( :Height ) );
obj9 << Fit Spline( n, Standardized ) << (Curve[1] << Report( 0 ));
(obj9 << Report())[List Box( 5 )] << Visibility( "Collapse" );
(obj9 << Report())[Picture Box( 2 )] << Visibility( "Collapse" )
);
)
)
);Re : Empêcher le défilement de la fenêtre lors de l'ajout de boîtes d'affichageDu point de vue de l'interface utilisateur interactive, faire défiler jusqu'au résumé d'ajustement est logique.Ce script utilise deux fonctions/méthodes de boîte d'affichage JMP utiles : Visibility() et Scroll Window(). Scroll Window() est utilisé pour toujours revenir en haut de l'affichage, et la visibilité est utilisée pour "Réduire" les zones de contour associées aux splines.
Notez que par souci de simplicité, ce script utilise le nombre de boîtes de contour.Cependant, Xpath pour trouver la kième boîte de contour avec helpKey commençant par Bivar Spline serait plus direct.
Names Default To Here( 1 );
n = 100;
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
xp = Expr(report(obj)[OutlineBox(cnt)] <<VISIBILITY></VISIBILITY>