C'est trop simple à mettre en production, mais cela devrait donner quelques idées possibles sur la façon dont vous pourriez aborder cela :
Names Default To Here(1);
dt = New Table("example",
Add Rows(4),
New Column("Batch", Numeric, Ordinal, Values([1,2,3,4]));
);
recode_batches = Expr(
aa_recode = Associative Array(ncb_batch << get, sceb_lot << get);
dt << New Column("Lot Number", Character, Nominal, << Set Each Value(
aa_recode[:Batch];
));
);
init_batches = Associative Array(:Batch) << get keys;
nw = New Window("Input",
H List Box(
Table Box(
ncb_batch = Number Col Box("Batch", init_batches),
sceb_lot = String Col Edit Box("Lot Number", Repeat({""}, N Items(init_batches))),
),
Panel Box("Actions",
Lineup Box(N Col(2),
Button Box("OK",
recode_batches;
nw << close window;
),
Button Box("Cancel", nw << close window)
)
)
)
);
Guide de script ( Guide de script > Afficher les arborescences > Construire des fenêtres personnalisées > Constructeurs pour les nouvelles fenêtres ) et Scripting Index ont beaucoup d'options différentes sur la façon de construire New Windows :
Il y a aussi pas mal de choses à considérer lors de la construction de quelque chose comme ça. Voici quelques questions auxquelles réfléchir :
- L'utilisateur doit-il être invité à remplir les informations de lot -> lot une par une ? Ou tout à la fois (comme mon exemple) ?
- Quel type de situations d'erreur il pourrait y avoir?
- Si la journalisation est nécessaire, quel type ?
- La fenêtre doit-elle être modale (bloquer l'utilisation de JMP jusqu'à ce que vous appuyiez sur OK/Annuler) ?
- Que sera-t-il fait après la création d'une nouvelle colonne ?
- Comment cela sera-t-il partagé ? Complément, script dans le lecteur réseau ?
- Comment cela sera-t-il modifié à l'avenir ?
Cela fonctionne à merveille, merci ! Et merci également pour les éléments supplémentaires à prendre en compte.
Salut,
Je cherche à utiliser JSL pour recoder une colonne (créer une nouvelle colonne), en fonction de l'entrée de l'utilisateur.J'ai des données que nous obtenons d'un traitement par lots, et nous pouvons identifier chaque lot en fonction du temps, donc je peux nettoyer les données pour ressembler à ceci :

Ce que je voudrais faire, c'est ensuite inviter l'utilisateur à entrer, dans ce cas le numéro de lot qui correspond à chaque lot, qui serait ensuite utilisé pour recoder une nouvelle colonne avec le numéro de lot correspondant au numéro de lot. La table finale ressemblerait à ceci :

Il y a une mise en garde supplémentaire : le nombre de lots dans une campagne est variable, allant de 1 à 16.L'objectif de ce script est qu'il puisse être exécuté sur le site de fabrication une fois la campagne de lots terminée, afin de le rendre convivial et facile à exécuter.Des idées?