JSL pour savoir comment copier et coller des colonnes comme vous pouvez le faire en cliquant avec le bouton droit sur une colonneBonjour à tous,
J'ai parcouru l'index des scripts et je n'ai trouvé aucune référence sur la façon de créer un script dans les options de copie de colonne et de collage de colonne

Le journal enregistrera la partie passée mais n'enregistrera pas la partie copie.
Il semble que la partie collage consiste simplement à créer une nouvelle formule avec le même nom, puis à coller les propriétés copiées à partir de la colonne copiée (j'essaie de copier plusieurs colonnes de formules plus fluides d'une table de données à une autre)
// Paste columns
Data Table("UBS") << New Column("Smoother(UBS Temp)", Numeric, "Continuous", Format("Best", 12), Formula(Il semble donc que je devrai parcourir la boucle pour obtenir les noms des colonnes, créer de nouvelles colonnes dans la nouvelle table, les renommer, puis copier et coller les propriétés des colonnes.
À moins que quelqu'un ait une meilleure idée (ce qui sera certainement le cas !)
Merci pour toute contribution.
Steve
Automatisation et scriptsRe: JSL pour savoir comment copier et coller des colonnes comme vous pouvez le faire en cliquant avec le bouton droit sur une colonneQue voulez-vous faire ? Si vous souhaitez simplement copier des valeurs de caractères (et non les propriétés de la colonne), j'utiliserais Join ou l'abonnement datatable. Assurez-vous également que la colonne dans laquelle vous copiez les valeurs est de type Caractère
Re: JSL pour savoir comment copier et coller des colonnes comme vous pouvez le faire en cliquant avec le bouton droit sur une colonneCette commande ne semble pas fonctionner pour les valeurs de chaîne, mais je ne trouve pas d'autre moyen de copier et coller des caractères d'une colonne. Existe-t-il un autre moyen de procéder pour les caractères ?
Re: JSL pour savoir comment copier et coller des colonnes comme vous pouvez le faire en cliquant avec le bouton droit sur une colonneCopier les propriétés de la colonne + Coller les propriétés de la colonne peuvent être utilisés pour plusieurs colonnes, il peut donc s'agir de deux lignes si vous souhaitez les utiliser (je ne le ferais probablement pas et j'utiliserais << obtenir le script et faire une boucle sur les colonnes)
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 pour savoir comment copier et coller des colonnes comme vous pouvez le faire en cliquant avec le bouton droit sur une colonne</LINGO-SUB><LINGO-BODY id="lingo-body-729552" slang="en-US" mode="CREATE"><P>Ces deux solutions ont très bien fonctionné. Merci <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/26800" target="_blank">@hogi</A> et <A href="https://community.jmp.com/t5/user/viewprofilepage/user-id/14366" target="_blank">@jthi</A> !</P><P> </P><P>Je vais devoir créer une boucle pour travailler sur mes colonnes afin de les transférer, donc ce n'est toujours pas aussi élégant que si j'avais un seul élément de ligne de JSL qui imitait la copie et un pour le collage des colonnes sélectionnées, mais au moins je peux y arriver maintenant.</P><P> </P><P>Merci encore!<BR /><BR /></P><P>Steve</P></LINGO-BODY><LINGO-SUB id="lingo-sub-729541" slang="en-US" mode="CREATE">Re: JSL pour savoir comment copier et coller des colonnes comme vous pouvez le faire en cliquant avec le bouton droit sur une colonne</LINGO-SUB><LINGO-BODY id="lingo-body-729541" slang="en-US" mode="CREATE"><P>S'il s'agit uniquement de la formule, vous pouvez utiliser <FONT face="courier new,courier"><< obtenir la formule</FONT> - puis utiliser l'expression renvoyée pour créer la colonne dans la deuxième table :<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 pour savoir comment copier et coller des colonnes comme vous pouvez le faire en cliquant avec le bouton droit sur une colonneJe préfère utiliser la fonction Send() au lieu d'utiliser << dans des cas comme celui-ci
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)))
));
Vous pouvez également utiliser les propriétés de colonne Copier/Coller par script, mais j'utiliserais << obtenir le script car il est plus clair ce qu'il doit faire et cela ne perturbera pas le presse-papiers
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 pour savoir comment copier et coller des colonnes comme vous pouvez le faire en cliquant avec le bouton droit sur une colonne</LINGO-SUB><LINGO-BODY id="lingo-body-729458" slang="en-US" mode="CREATE"><P>Oh, c'est plus compliqué que je ne le pensais.</P><P> </P><PRE><CODE class=" language-jsl">my new table << myscript
ça ne marche pas...
Il faut donc soit préparer le message via :
Eval (EvalExpr(dt << Expr(Name Expr(myscript))))
ou
Eval(Substitute(Expr(dt << _message_), Expr(_message_), Name Expr(myscript)))
ou changez la table de données actuelle avant d'exécuter le script :
current data table( my new table);
myscript
Re: JSL pour savoir comment copier et coller des colonnes comme vous pouvez le faire en cliquant avec le bouton droit sur une colonneMerci pour la suggestion @hogi , c'est probablement une question idiote mais quelle serait la prochaine étape ? J'ai essayé d'utiliser les propriétés de la colonne de collage une fois que j'ai obtenu le script de la colonne de référence, mais cela ne semble pas fonctionner. J'apprécierais toute idée sur la prochaine étape !
Steve
Re: JSL pour savoir comment copier et coller des colonnes comme vous pouvez le faire en cliquant avec le bouton droit sur une colonnevous pouvez demander à la colonne - la même chose est possible pour beaucoup plus d'objets :
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()