JSL su come copiare e incollare le colonne come puoi fare cliccando con il tasto destro del mouse su una colonnaCiao a tutti,
Stavo esaminando l'indice degli script e non sono riuscito a trovare alcun riferimento su come scrivere script nelle opzioni di copia e incolla della colonna

Il registro registrerà la parte passata ma non la parte copiata.
Sembra che la parte incollata crei semplicemente una nuova formula con lo stesso nome e poi incolli le proprietà copiate dalla colonna copiata (sto cercando di copiare più colonne di formule più uniformi da una tabella dati a un'altra)
// Paste columns
Data Table("UBS") << New Column("Smoother(UBS Temp)", Numeric, "Continuous", Format("Best", 12), Formula(Sembra quindi che dovrò procedere in sequenza per ottenere i nomi delle colonne, creare nuove colonne nella nuova tabella, rinominarle e quindi copiare e incollare le proprietà delle colonne.
A meno che qualcuno non abbia un'idea migliore (e sono sicuro che ci saranno!)
Grazie per ogni contributo.
Steve
Automazione e scriptingRe: JSL su come copiare e incollare colonne come si fa cliccando con il tasto destro del mouse su una colonnaCosa stai cercando di fare? Se vuoi solo copiare i valori dei caratteri (non le proprietà delle colonne), userei Join o datatable subscripting. Inoltre, assicurati che la colonna in cui stai copiando i valori sia di tipo Carattere
Re: JSL su come copiare e incollare colonne come si fa cliccando con il tasto destro del mouse su una colonnaQuesto comando non sembra funzionare per i valori String, ma non riesco a trovare un altro modo per copiare e incollare caratteri da una colonna. Esiste un modo diverso per farlo per i caratteri?
Re: JSL su come copiare e incollare colonne come si fa cliccando con il tasto destro del mouse su una colonnaCopia proprietà colonna + Incolla proprietà colonna può essere utilizzato per più colonne, quindi potrebbero essere due righe se si desidera utilizzarle (molto probabilmente non lo farei e utilizzerei << get script e farei un ciclo sulle colonne)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Tiretread.jmp");
dt2 = New Table("test it",
New Column("T1", numeric, continuous),
New Column("T2", numeric, continuous),
New Column("T3", numeric, continuous),
Add Rows(10)
);
dt << Copy Column Properties({:MODULUS, :ELONG});
dt2 << Paste Column Properties({:T1, :T3});
</CODE></P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-729552" slang="en-US" mode="CREATE">Re: JSL su come copiare e incollare colonne come si fa cliccando con il tasto destro del mouse su una colonna</LINGO-SUB><LINGO-BODY id="lingo-body-729552" slang="en-US" mode="CREATE"><P>Entrambe queste soluzioni hanno funzionato alla grande. Grazie <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/26800" target="_blank">@hogi</A> e <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366" target="_blank">@jthi</A> !</P><P> </P><P>Dovrò creare un ciclo per lavorare sulle mie colonne e trasferirle, quindi non sarà comunque elegante come se avessi una singola riga di JSL che imitasse il copia e una per incollare le colonne selezionate, ma almeno ora ci riesco.</P><P> </P><P>Grazie ancora!<BR /><BR /></P><P>Steve</P></LINGO-BODY><LINGO-SUB id="lingo-sub-729541" slang="en-US" mode="CREATE">Re: JSL su come copiare e incollare colonne come si fa cliccando con il tasto destro del mouse su una colonna</LINGO-SUB><LINGO-BODY id="lingo-body-729541" slang="en-US" mode="CREATE"><P>Se si tratta solo della formula, puoi usare <FONT face="courier new,courier"><< get formula</FONT> - e quindi usare l'espressione restituita per creare la colonna nella seconda tabella:<BR /><BR /></P><PRE><CODE class=" language-jsl">Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "A",
Format( "Best", 12 ),
Formula( :weight - :height )
);
myformula =:a << get formula;
dtnew = Open( "$SAMPLE_DATA/Big Class Families.jmp" );
Eval(Eval Expr(dt new << new column ("A", Formula(Expr(Name Expr(myformula))))))
Re: JSL su come copiare e incollare colonne come si fa cliccando con il tasto destro del mouse su una colonnaPreferisco usare la funzione Send() invece di usare << in casi come questo
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
newcol = dt << New Column("ABC", Numeric, Continuous, Formula(:height * :weight));
colscript = Column(dt, "ABC") << get script;
Eval(EvalExpr(
Send(dt, Expr(NameExpr(colscript)))
));
Puoi anche usare le proprietà della colonna Copia/Incolla tramite script, ma io userei << get script perché è più chiaro cosa dovrebbe fare e non interferisce con gli appunti
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
newcol = dt << New Column("ABC", Numeric, Continuous, Formula(:height * :weight));
dt << Copy Column Properties({:ABC});
dt << New Column("ABCD");
dt << Paste Column Properties({:ABCD});
</CODE></P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-729458" slang="en-US" mode="CREATE">Re: JSL su come copiare e incollare colonne come si fa cliccando con il tasto destro del mouse su una colonna</LINGO-SUB><LINGO-BODY id="lingo-body-729458" slang="en-US" mode="CREATE"><P>Oh, la cosa è più complicata di quanto pensassi.</P><P> </P><PRE><CODE class=" language-jsl">my new table << myscript
non funziona...
Quindi uno dei due deve preparare il messaggio tramite:
Eval (EvalExpr(dt << Expr(Name Expr(myscript))))
O
Eval(Substitute(Expr(dt << _message_), Expr(_message_), Name Expr(myscript)))
oppure cambiare la tabella dati corrente prima di eseguire lo script:
current data table( my new table);
myscript
Re: JSL su come copiare e incollare colonne come si fa cliccando con il tasto destro del mouse su una colonnaGrazie per il suggerimento @hogi , probabilmente una domanda stupida, ma quale sarebbe il passo successivo? Ho provato a usare le proprietà della colonna incolla una volta ottenuto lo script dalla colonna di riferimento, ma non sembrava funzionare. Apprezzo qualsiasi spunto sul passo successivo!
Steve
Re: JSL su come copiare e incollare colonne come si fa cliccando con il tasto destro del mouse su una colonnapuoi chiedere alla colonna - lo stesso è possibile per molti altri oggetti:
Names Default to Here(1);
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Column( "A",
Format( "Best", 12 ),
Formula( :weight - :height )
);
myscript = :A << get script()