Comment créer des noms de variables d'objets dt en fonction de la boucleSalut,
Comment créer des noms de variables d'objets dt - dt_valuesarray[i] ?
valuesarray = {};<BR />Summarize( dt_values, valuesarray = by( :Dis ) );<BR />
For( i = 1, i <= N Items( valuesarray ), i++,
dt_values << Select where( :Dis == valuesarray[i] );
<FONT color="#FF0000"><STRONG>dt_valuesarray[i]</STRONG></FONT>=Data Table( "Summary values" ) <<
Subset(
Output Table( "Summary " || valuesarray[i] || ),
Selected Rows( 1 ),
Selected columns only( 0 )
));
Merci
Re : Comment créer des noms de variables d'objets dt en fonction de la boucle@txnelson @Mark_Bailey , Merci pour votre aide.
J'attendrai la prochaine version pour la Button Box 
J'ai trouvé un moyen de le "résoudre" -
J'utilise dans Outline Box (fermer) et il simule comme une Button Box.
Re : Comment créer des noms de variables d'objets dt en fonction de la boucleVotre bouton est un objet JMP. Lorsque vous cliquez sur le bouton, JMP évalue le script associé au bouton. Votre navigateur ne sait pas comment évaluer JSL.
JMP 14 a lancé un développement parallèle distinct pour HTML5. Le développement de contenu HTML5 en sauvegardant une plate-forme se poursuit comme @txnelson a dit. Maintenant, cependant, il existe un autre moyen. Voir en vedette Publique JMP contenu pour comprendre la deuxième approche. Il nécessite un serveur JMP et du code HTML5 supplémentaire pour "publier" le contenu au lieu de l'enregistrer.
Cette version de JMP est également disponible en tant que JMP en direct pour un usage privé.
Re : Comment créer des noms de variables d'objets dt en fonction de la boucleExiste-t-il actuellement d'autres fonctionnalités JMP en HTML interactif ou HTML pour Button Box ?
En fait, je cherche une solution pour une - page HTML\HTML interactive
La page comprendra Tab Box et Button Box (comme vous m'avez aidé à l'écrire ci-dessus).
Avez-vous une solution à proposer pour ce problème ?Re : Comment créer des noms de variables d'objets dt en fonction de la boucleToutes les fonctionnalités de JMP ne sont pas actuellement disponibles en HTML interactif.Au fur et à mesure que de nouvelles versions sortent, plus de fonctionnalités deviennent disponibles.Le code spécifié par l'utilisateur, tel que le script que vous avez écrit pour la Button Box, n'est pas pris en charge dans l'affichage HTML.
Re : Comment créer des noms de variables d'objets dt en fonction de la boucleDans JMP, cela fonctionne très bien, mais dans 'Interactive HTML', je ne peux pas cliquer sur l'onglet - voir ci-joint.
Le bouton est invisible.

Re : Comment créer des noms de variables d'objets dt en fonction de la boucleque dit le journal ?Re : Comment créer des noms de variables d'objets dt en fonction de la boucleSalut,
C'était certainement un simple changement.
La prochaine fois, j'utiliserai certainement les guides
Merci!
Cela fonctionne, mais j'ai un problème lorsque j'enregistre le fichier au format HTML, le lien vers l'exploration ("cliquez ici") ne fonctionne pas.
Quelle pourrait être la raison?
(Je ne l'ai pas trouvé dans les guides
)
Re : Comment créer des noms de variables d'objets dt en fonction de la boucleLorsque vous commencez à utiliser une nouvelle fonction, vous devez étudier ses options et ses exemples.C'est tout à fait vrai pour la fonction Tab().Vous devez lire le Guide de script et sa zone sur la fonction Tab(), puis aller à l'index de script et étudier tous les messages (options) et exemples qui y sont présentés pour la fonction Tab().Voici la modification simple qui a dû être apportée du dernier exemple au nouvel exemple correspondant à la sortie que vous avez fournie
Names Default To Here( 1 );
dt_values = Current Data Table();
dt_valuesarray = {};
Summarize( dt_values, valuesarray = by( :Dis ) );
For( i = 1, i <= N Items( valuesarray ), i++,
dt_values << Select where( :Dis == valuesarray[i] );
mydt = dt_values << Subset( Output Table( "Summary " || valuesarray[i] ), Selected Rows( 1 ), Selected columns only( 0 ) );
Insert Into( dt_valuesarray, mydt );
Current Journal() << Close window( nosave );
dt_valuesarray[i]() << save( "\\SUMMARY\" || valuesarray[i] || ".jmp " );
dt_valuesarray[i]() << journal;
Current Journal() << Save HTML( "\\SUMMARY\" || valuesarray[i] || ".html" );
Current Journal() << Close window( nosave );
);
//------------------ new window
charts = {};
ob = Outline Box( "Summary Data", Outline Box( "Summary Tables", myTab = Tab Box() ) );
For( i = 1, i <= N Items( valuesarray ), i++,
myTab << Insert(
valuesarray[i],
Eval(
Parse(
"charts[" || Char( i ) ||
"] = Charts_1 = V List Box(
V List Box( dt_valuesarray[i] << get as report() ),
Outline Box( \!"Drill Down Analysis\!", BB = Button Box( \!"Click Here\!", Open( \!"\\SUMMARY\"
|| valuesarray[i] || ".html\!" ))));"
)
);
//dt_vlist << append( );
)
);
dt_tables = New Window( "Tables", ob );Re : Comment créer des noms de variables d'objets dt en fonction de la boucle@txnelson Merci beaucoup pour la réponse - je vais essayer maintenant.
Désolé, j'ai ajouté une image (sortie finale à quoi je veux qu'elle ressemble) dans le commentaire précédent, pour une raison quelconque, elle n'existe pas, alors je l'ai ajoutée à nouveau.

Re : Comment créer des noms de variables d'objets dt en fonction de la boucleJe ne suis pas tout à fait sûr de ce que vous avez imaginé pour votre sortie finale, alors j'ai dû deviner.Un problème que j'ai trouvé, c'est que vous utilisiez une référence à "dt_valuesarray [I]" qui renverra Data Table ("F") ou Data Table ("M"), alors que je pense que vous vouliez faire référence à "valuesarray [I] ]" qui renverra soit "F" soit "M".
Vous avez également eu la création de la V List Box, référencée comme dt_vlist, à l'intérieur de votre boucle For().C'est pourquoi vous n'obteniez qu'une seule copie des résultats.À chaque passage de la boucle For(), ds_vlist était à nouveau créée.
Dans votre script pour les boîtes à boutons, vous faisiez référence à valuesarray[I].Ce qui est important ici, c'est que la valeur de "I" est évaluée au moment du Button Push.Cela signifie que, quelle que soit la valeur de I lorsque le bouton est enfoncé, déterminera quel fichier sera ouvert.J'ai donc changé le code en code dur dans la valeur lors de la création de la boîte à boutons.
Enfin, vous spécifiiez //SUMMARY dans votre chemin pour enregistrer les fichiers. Je ne sais pas si c'est un problème sur votre ordinateur ou non.Si //SUMMARY est une référence appropriée, je pense que vous devrez ajouter un \ après le SUMMARY pour indiquer au système d'exploitation la séparation entre celui-ci et le nom du fichier
Names Default To Here( 1 );
dt_values = Current Data Table();
dt_valuesarray = {};
Summarize( dt_values, valuesarray = by( :Dis ) );
For( i = 1, i <= N Items( valuesarray ), i++,
dt_values << Select where( :Dis == valuesarray[i] );
mydt = dt_values << Subset( Output Table( "Summary " || valuesarray[i] ), Selected Rows( 1 ), Selected columns only( 0 ) );
Insert Into( dt_valuesarray, mydt );
Current Journal() << Close window( nosave );
dt_valuesarray[i]() << save( "\\SUMMARY\" || valuesarray[i] || ".jmp " );
dt_valuesarray[i]() << journal;
Current Journal() << Save HTML( "\\SUMMARY\" || valuesarray[i] || ".html" );
Current Journal() << Close window( nosave );
);
//------------------ new window
charts = {};
dt_vlist = V List Box();
For( i = 1, i <= N Items( valuesarray ), i++,
eval(parse(
"charts[" || char(i) || "] = Charts_1 = V List Box(
V List Box( dt_valuesarray[i] << get as report() ),
Outline Box( \!"Drill Down Analysis\!", BB = Button Box( \!"Click Here\!", Open( \!"\\SUMMARY\" || valuesarray[i] || ".html\!" ))));" ));
dt_vlist << append( Outline Box( "Summary Data", Outline Box( "Summary Tables", Tab Box( valuesarray[i], charts[i] ) ) ) );
);
dt_tables = New Window( "Tables", dt_vlist );
Re : Comment créer des noms de variables d'objets dt en fonction de la boucleSalut @txnelson ,
Pouvez-vous me soutenir s'il vous plait ?
Re : Comment créer des noms de variables d'objets dt en fonction de la boucle@txnelson ,
Suite au problème que vous avez résolu,
J'essaie d'utiliser dans les tableaux que j'ai enregistrés.
J'utilise une nouvelle fenêtre et pour chaque table aura une tabbox
Les problèmes sont :
1. Un seul onglet s'ouvre pour moi pour une table - dans mon cas, il devrait y avoir 2 onglets
2. La boîte à boutons n'a pas ouvert le fichier lors de l'enregistrement
dt_values = Current Data Table();
dt_valuesarray = {};
Summarize( dt_values, valuesarray = by( :Dis ) );
For( i = 1, i <= N Items( valuesarray ), i++,
dt_values << Select where( :Dis == valuesarray[i] );
mydt = dt_values << Subset(
Output Table( "Summary " || valuesarray[i] ),
Selected Rows( 1 ),
Selected columns only( 0 )
);
Insert Into( dt_valuesarray, mydt );
Current Journal() << Close window( nosave );
dt_valuesarray [i]() << save( "\\Summary "|| valuesarray[i] ||".jmp " );
dt_valuesarray [i]() << journal;
Current Journal() << Save HTML( "\\Summary "|| valuesarray[i] ||" .html" );
Current Journal() << Close window( nosave );
);
//------------------ new window
charts = {};
For( i = 1, i <= N Items( valuesarray), i++,
charts[i] = Charts_1 = V List Box(
V List Box( dt_valuesarray[i] << get as report() ),
Outline Box( "Drill Down Analysis",
BB = Button Box( "Click Here",
Open( "\\Summary "|| dt_valuesarray[i] ".html" )
)
)
);
dt_vlist= V List Box(
Outline Box( "Summary Data",
Outline Box( "Summary Tables",
TabBox( dt_valuesarray[i], charts[i] ) ) )
));
dt_tables = New Window( "Tables", dt_vlist);
<SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Capture.PNG" style="width: 354px;"><span class="lia-inline-image-display-wrapper" image-alt="Capture.PNG" style="width: 354px;"><img src="https://us.v-cdn.net/6038925/uploads/images/23753i8D6057CAEB44C940/Capture.PNG" role="button" title="Capture.PNG" alt="Capture.PNG" /></span></SPAN>
Merci beaucoup pour votre soutien rapide
Re : Comment créer des noms de variables d'objets dt en fonction de la boucleSuper!
Grand merci @txnelson
Re : Comment créer des noms de variables d'objets dt en fonction de la boucleVoici la façon dont je gère ce que vous essayez de faire.
dt_values = Current Data Table();
dt_valuesarray = {};
Summarize( dt_values, valuesarray = by( :Dis ) );
For( i = 1, i <= N Items( valuesarray ), i++,
dt_values << Select where( :Dis == valuesarray[i] );
mydt = dt_values << Subset(
Output Table( "Summary " || valuesarray[i] ),
Selected Rows( 1 ),
Selected columns only( 0 )
);
Insert Into( dt_valuesarray, mydt );
);
show(dt_valuesarray);