String Col Box: come passare un elenco di stringhe a una String Col Box come N singole stringhe.CIAO,
Sto riscontrando un problema con una casella di stringa di contorno. Si prega di vedere l'immagine allegata. 
Il mio problema è che invece di poter fornire singolarmente ciascuna stringa come nel primo esempio, posso solo fornire un elenco di stringhe come variabile "ListOfStrings" nell'immagine.
Invece di avere xyz in tre righe diverse come nella prima tabella, li ho nella stessa riga, il che non funziona con me.
Vivrei qualsiasi guida in questa materia. Devo essere in grado di fornire un elenco di stringhe e avere comunque lo stesso formato di output della prima tabella.
Automazione e scriptingAnalisi e modellazione dei dati di baseAccesso ai datiRi: String Col Box: come passare un elenco di stringhe a una String Col Box come N singole stringhe.E se i tuoi x, y, x, w sono numeri, non puoi usarli in String Col Box poiché è solo per le stringhe (convertili prima in caratteri se è il caso o usa Number Col Box). Riceverai un messaggio di errore come
Not a string in access or evaluation of 'String Col Box' , Bad Argument(1), String Col Box/*###*/("names", vals)
Usare Transform Each (se hai jmp16+) è un modo semplice per convertirli
Names Default To Here(1);
a = 1;
b = 2;
c = 3;
mylist = {a, b, c};
valsnum = Eval List(mylist);
valstr = Transform Each({curval}, valsnum, Char(curval));
show(valsnum, valstr);
Inoltre, in generale, se sono presenti variabili all'interno di un elenco, queste potrebbero non essere sempre valutate. Quindi puoi valutarli con Eval List()
Names Default To Here(1);
a = "X";
b = "Y";
c = "Z";
mylist = {a, b, c};
vals = Eval List(mylist);
show(mylist, vals);Ri: String Col Box: come passare un elenco di stringhe a una String Col Box come N singole stringhe.Grazie @jthi ! Il metodo sopra è una semplificazione del codice che ho. Il codice effettivo è che ho un elenco che devo stampare come xyz sopra. È identico al codice seguente. Ho provato a utilizzare le funzioni eval e char. Eval restituisce un errore, ma char restituisce una finestra come quella che ho fornito inizialmente in cui tutte le variabili ( x,y.. ) sono su un'unica riga. Quello che ho fatto è convertire l'elenco di buffer in un elenco di stringhe e quindi valutarlo utilizzando (Eval) come il metodo fornito da @txnelson .
buffer = {x, y, x, w};
nw = New Window ( "take user input",
<<MODAL></MODAL> nb = Number Col Edit Box(
"",
[0,0,0,0],
targetint = nb << get as matrix;
)
),
bb = Button Box( "OK", targetint = nb << get as matrix ),
Button Box( "Cancel" )
); Ad ogni modo, ora funziona, ma esiste un modo per farlo senza utilizzare eval ? Solo curioso. Grazie.
Ri: String Col Box: come passare un elenco di stringhe a una String Col Box come N singole stringhe.Grazie @txnelson . Ora funziona!
Solo per riferimento:
In realtà ho usato Eval prima ma restituiva un messaggio di errore. Mi sono reso conto che era perché ho usato le parentesi {} e ho inserito la funzione eval al suo interno. Ho usato questo codice:
String Col Box( "ONLY CHOOSE ONE BLOCK", { Eval (buffer) } );
Ri: String Col Box: come passare un elenco di stringhe a una String Col Box come N singole stringhe.Lo stai convertendo inutilmente in una stringa ed è per questo che ottieni l'elenco lì.
Names Default To Here(1);
vals = {"x", "y", "z"};
vals_char = Char(vals);
Show(vals, vals_char, type(vals), type(vals_char));
La stampa di vals_char può sembrare un po' strana nel log poiché JMP evita le virgolette (puoi usare Write() per evitarlo se necessario).
Puoi usare ciò che ha suggerito @txnelson , ma Eval non dovrebbe essere necessario (in questo caso)
Names Default To Here(1);
vals = {"x", "y", "z"};
nw = New Window("Example",
Outline Box("Table",
Table Box(
scb = String Col Box("names", vals),
Number Col Box("values", {11, 22, 33}),
Plot Col Box("values", {11, 22, 33})
)
)
);Ri: String Col Box: come passare un elenco di stringhe a una String Col Box come N singole stringhe.Utilizzare una funzione Eval() per fare in modo che JMP valuti la variabile listofStrings e sostituirà la variabile con il valore della variabile.
Names Default To Here( 1 );
listofStrings = {"x", "y", "z"};
New Window( "Example2",
Outline Box( "table2",
Table Box(
String Col Box( "names", Eval( listofStrings ) ),
Number Col Box( "values", {11, 12, 13} ),
Plot Col Box( "values", {11, 12, 13} )
)
)
);
