Bug lors de l'exécution du module complémentaire directement sur la page d'accueil de JMPBonjour la communauté JMP :
J'enregistre 2 scripts dans des compléments, et un bug se produit dans certaines situations, les scripts fonctionnent comme suit :
- Le premier module complémentaire créera une nouvelle table et créera plusieurs nouvelles colonnes, appelons cette nouvelle table « calculer la table »
- Ensuite, je vais exécuter le deuxième complément dans « calculer la table », il faudra ouvrir un autre fichier existant (appelons-le « table de données brutes »), puis récupérer les données de « table de données brutes » et saisir quelque chose dans la « table de calcul »
//This is the first script
Names Default To Here( 1 );
New Table( "Calculate table");
dt = current data table();
newcolumn = {"X", "Y"};
for each({colval},newcolumn,
dt << new column(colval);
);
//This is the starting lines of 2nd script
Names Default To Here( 1 );
dt = current data table();
file = Pick file( "Select raw data table" );
if(is empty(file),
show("No file selected");
stop();
);
Try(
dt2 = open(file);
,
show("No file selected");
stop();
);<BR /> // The following code are not shown here
Situation sans bug :
- Si j'ouvre une table de données, j'exécute le 1er complément, puis j'exécute le 2ème complément dans la nouvelle table, cela fonctionne
Situation avec bug :
- Si j'exécute le 1er module complémentaire directement dans la page d'accueil de JMP, puis que j'exécute le 2ème module complémentaire, le 2ème module complémentaire aura un bogue
En résumé, le deuxième module complémentaire récupère les données et la formule de colonne du tableau de données brutes, les saisit dans le tableau de calcul, puis crée une nouvelle fenêtre avec un curseur. Ce dernier ne fonctionne pas en cas de bug, mais la récupération des données et de la formule fonctionne toujours.
Automatisation et scriptsRe : Bug lors de l'exécution du module complémentaire directement sur la page d'accueil de JMPJe suppose que la table de données actuelle n'est pas celle attendue. Vous pouvez peut-être l'afficher dans le journal pour vérifier. Je pense que la table de données actuelle se trouve dans un contexte qui appartient souvent à une fenêtre et que la fenêtre d'accueil ajoute un autre contexte. En exécutant le module complémentaire depuis la table, vous (1) vous assurez probablement que la table est à jour en la touchant et (2) vous obtenez le contexte qui la définit comme la table actuelle.
Re : Bug lors de l'exécution du module complémentaire directement sur la page d'accueil de JMPJ'ai fait comme tu l'as dit, j'ai imprimé dt et dt2, et ils sont corrects.
Ensuite, j'ai réalisé que lorsque j'appelais des colonnes dans la boîte de curseur, je ne spécifiais pas quelle table de données, j'ai donc mis dt: avant la colonne
J'ajoute également une autre table de données actuelle (dt) au milieu du code après avoir fermé dt2
Maintenant ça marche bien.
lubPP = Lineup box(NCol(1),
PPtb = Text Box( "PP: " || Char( PPmin ) ),
PPsb = Slider Box(
PPmin, PPmax, PPValue,
PPb << Set Text( "PP: " || Char( PPValue ) );
:PP << set each value(PPValue); // I should use dt:PP here
new = dt:NewPP << get values;