Esto es demasiado simple para ponerlo en el piso de fabricación, pero debería dar algunas ideas posibles sobre cómo podría abordar esto:
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)
)
)
)
);
Guía de secuencias de comandos ( Guía de secuencias de comandos > Árboles de visualización > Construir ventanas personalizadas > Constructores para nuevas ventanas ) y Scripting Index tienen muchas opciones diferentes sobre cómo construir New Windows:
También hay algunas cosas a considerar al construir algo como esto. A continuación hay algunas preguntas para pensar:
- ¿Debería pedirse al usuario que complete el lote -> la información del lote uno por uno? ¿O todos a la vez (como mi ejemplo)?
- ¿Qué tipo de situaciones de error puede haber?
- Si se necesita registro, ¿de qué tipo?
- ¿Debería la ventana ser modal (bloquear el uso de JMP hasta que se presione Aceptar/Cancelar)?
- ¿Qué se hará después de que se haya creado una nueva columna?
- ¿Cómo se compartirá esto? ¿Complemento, secuencia de comandos en la unidad de red?
- ¿Cómo se modificará esto en el futuro?
¡Esto funciona maravillosamente, gracias! Y gracias también por las cosas adicionales a considerar.
Hola,
Estoy buscando usar JSL para recodificar una columna (creando una nueva columna), según la entrada del usuario.Tengo datos que obtenemos de un proceso por lotes y podemos identificar cada lote en función del tiempo, por lo que puedo limpiar los datos para que se vean así:

Lo que me gustaría hacer es pedirle al usuario que ingrese, en este caso el número de lote que corresponde a cada lote, que luego se usaría para recodificar una nueva columna con el número de lote correspondiente al número de lote. La mesa final sería algo así:

Hay una advertencia adicional: el número de lotes en una campaña es variable, entre 1 y 16.El objetivo de este script es que se pueda ejecutar en la planta de fabricación después de que se complete la campaña de lotes, por lo que busca que sea fácil de usar y ejecutar.¿Algunas ideas?