Utilizzando uno script, come faccio a impostare il testo di uno script di tabella in una casella di pulsanti in un file journal?Usando uno script, ho bisogno di costruire un file journal completamente autonomo con pulsantiere che riproducano tabelle di dati.Nell'applicazione di produzione, ci saranno molte intestazioni (ognuna che rappresenta una parte) e ciascuna intestazione avrà diverse caselle di pulsanti sotto di essa, ciascuna con una tabella dati diversa associata alla parte.A causa dei complessi calcoli necessari alla costruzione delle tabelle di dati, le sto costruendo usando le funzioni.Il mio intento sarebbe quello di distribuire SOLO il file journal agli utenti.
Ho costruito un esempio scheletrico utilizzando la tabella di dati di esempio Baltic.jmp. La funzione "SmallTables()" restituisce lo script della tabella come testo.Ma non riesco a trovare un modo per inserire quel testo nelle caselle degli script per le caselle dei pulsanti nel file journal. Qualsiasi aiuto sarebbe molto apprezzato.
SmallTables = Function( {k},
dt = Open( "$Sample_Data/Baltic.jmp" );
dt_Small = dt << Subset( Rows(), Columns( Column( k ) ), Output Table Name( "Small" ) );
Close( dt, NoSave );
tblScript = dt_Small << Get Script;
result = Char( Name Expr( tblScript ) );
);
jrn = New Window( "Table Test", Outline Box( "Title" ) );
For( k = 1, k <= 5, k++,
jrn << Append( BB = Button Box( "Small Table " || Char( k ), Set Script( SmallTables( k ) ) ) )
);Ri: Usando uno script, come faccio a impostare il testo di uno script di tabella in una casella di pulsante in un file journal?Grazie mille per il riferimento a quell'articolo!È una spiegazione molto chiara con esempi carini.È molto utile.
Ri: Usando uno script, come faccio a impostare il testo di uno script di tabella in una casella di pulsante in un file journal?Il trucco è assicurarsi che la sottoespressione sia inserita prima che venga valutata.Questo articolo di JSL Cookbook potrebbe aiutare:
Inserisci un'espressione in un'altra usando Eval Insert, Eval Expr, Parse e Substitute
Ri: Usando uno script, come faccio a impostare il testo di uno script di tabella in una casella di pulsante in un file journal?Che bell'esempio!Nel mio progetto, tuttavia, ho bisogno di costruire centinaia di tabelle di dati, diverse per ciascuna delle molte parti.Questo è il motivo per cui sto usando le funzioni per costruire le tabelle di dati (si spera che nessun utente principiante vedrà mai Quello copione!). Temo che il tuo suggerimento comporterebbe l'apertura di troppe finestre contemporaneamente. Ma, per un numero gestibile di tabelle di dati, il tuo concetto è molto bello!Sono sicuro che avrò occasione di usarlo.
Grazie mille per il vostro aiuto.
Ri: Usando uno script, come faccio a impostare il testo di uno script di tabella in una casella di pulsante in un file journal?Grazie molte!Funziona perfettamente nel mio script "grande".Ero ossessionato dall'idea che il risultato della mia funzione fosse una rappresentazione testuale dello script e, come tale, dovesse essere inserito nella finestra di dialogo dello script della casella dei pulsanti. Non sono ancora chiaro il motivo per cui non funziona, ma l'utilizzo della funzione Nome Espr e Sostituto, come hai dimostrato, funziona perfettamente.
A proposito, nella mia applicazione nella vita reale, il ciclo è necessario perché devo costruire tabelle diverse.Ho un gran numero di parti e lo script costruisce diverse tabelle di dati, con script, che sono univoci per ciascuna parte.Quello script richiede un po' di tempo per essere eseguito, quindi è fantastico poter eseguire quello script per creare un file journal autonomo.
Grazie ancora per avermi messo sulla strada giusta!
Ri: Usando uno script, come faccio a impostare il testo di uno script di tabella in una casella di pulsante in un file journal?Uso file di diario autonomi per demo e formazione, rendendoli facili da condividere.I collegamenti per chiudere le singole sezioni e per ripulire tutto mantengono le cose in movimento.Lo script seguente crea un diario di esempio di base; una volta eseguito, dovresti vedere un diario con i collegamenti al suo interno.Fare clic con il tasto destro su ciascuno e selezionare Modifica > Modifica script per vedere come sono costruiti.Uso spesso "Copia script tabella" per popolare questi.Mettere questi codici nelle funzioni è una buona idea, ma tieni presente che sembra più una magia nera per gli utenti principianti che cercano di esplorare il tuo diario.

Nota che normalmente creo diari in modo interattivo, non usando uno script come questo.
names default to here(1);
//Open data tables temporarily so we can copy their scripts
dtIrisTemp = open("$Sample_Data/Iris.jmp");
dtBigClassTemp = open("$Sample_Data/Big Class.jmp");
//Use Eval(EvalExpr()) so the actual scripts for the data table are saved in
//the journal.
Eval( Eval Expr(
journal = New Window( "A Journal", <<JOURNAL></JOURNAL>
Ri: Usando uno script, come faccio a impostare il testo di uno script di tabella in una casella di pulsante in un file journal?Se utilizzerai una tabella, non la aprirei e non la chiuderei per ogni chiamata di funzione. Aprirei la tabella, costruirei la finestra, con il ciclo for, quindi chiudere la tabella.
Prova questo.
SmallTables = Function( {k},
dt = Open( "$Sample_Data/Baltic.jmp" );
dt_Small = dt << Subset( Rows(), Columns( Column( k ) ), Output Table Name( "Small" ), Invisible );
Close( dt, NoSave );
_xx = dt_Small << Get Table Script Names;
dt_Small << Delete Scripts(_xx);
tblScript = dt_Small << Get Script;
wait(0);
Close( dt_Small , NoSave);
NameExpr(tblScript)
);
jrn = New Window( "Table Test", Outline Box( "Title" ) );
For( k = 1, k <= 5, k++,
_xx = SmallTables(k);
Eval(Substitute(Expr(jrn << Append( BB = Button Box( "Small Table " || Char( k ), Set Script( _scr ) ) )),
Expr(_scr), NameExpr(_xx) ) )
);Ri: Usando uno script, come faccio a impostare il testo di uno script di tabella in una casella di pulsante in un file journal?