Questo è troppo semplice da mettere in produzione, ma dovrebbe dare alcune possibili idee su come affrontarlo:
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)
)
)
)
);
Guida agli script ( Guida agli script > Visualizza alberi > Costruisci finestre personalizzate > Costruttori per nuove finestre ) e Scripting Index hanno molte opzioni diverse su come creare nuove finestre:
Ci sono anche alcune cose da considerare quando si costruisce qualcosa di simile. Di seguito sono riportate alcune domande su cui riflettere:
- All'utente dovrebbe essere chiesto di riempire il lotto -> le informazioni sul lotto uno per uno? O tutto in una volta (come il mio esempio)?
- Che tipo di situazioni di errore potrebbero esserci?
- Se è necessaria la registrazione, di che tipo?
- La finestra dovrebbe essere modale (bloccare l'utilizzo di JMP finché non si preme OK/Annulla)?
- Cosa verrà fatto dopo la creazione di una nuova colonna?
- Come sarà condiviso? Componente aggiuntivo, script nell'unità di rete?
- Come verrà modificato in futuro?
Funziona meravigliosamente, grazie! E grazie anche per le cose aggiuntive da considerare.
CIAO,
Sto cercando di utilizzare JSL per ricodificare una colonna (creando una nuova colonna), in base all'input dell'utente.Ho i dati che otteniamo da un processo batch e possiamo identificare ogni batch in base al tempo, quindi posso ripulire i dati in modo che assomiglino a questo:

Quello che vorrei fare è quindi richiedere all'utente l'input, in questo caso il numero di lotto che corrisponde a ciascun lotto, che verrebbe quindi utilizzato per ricodificare una nuova colonna con il numero di lotto corrispondente al numero di lotto. Il tavolo finale sarebbe simile a questo:

C'è un ulteriore avvertimento: il numero di batch in una campagna è variabile, ovunque da 1 a 16.L'obiettivo di questo script è che possa essere eseguito sul piano di produzione dopo che la campagna di batch è stata completata, cercando quindi di renderlo intuitivo e facile da eseguire.Qualche idea?