Comment puis-je changer le format de colonne dans JSL ou gérer l'erreur Send Expects Scriptable ObjectJe travaille sur la jointure de (2) tables dans un script JSL.Le problème que j'ai concerne la sauvegarde des tables nouvellement jointes.Il y a (2) problèmes.
Le premier problème est que les colonnes de données de (Test2) arrivent dans JMP en tant que caractère/nominal et doivent être numériques/continues.Lorsque je modifie ou crée le format de colonne de la feuille de calcul Excel en numérique, j'obtiens l'erreur suivante au niveau de la ligne de code dt3 << enregistrer en tant que ligne de code.
Send Attend un objet scriptable lors de l'accès ou de l'évaluation de 'Send' , dt3 << /*###*/save as("B:\JoinTest1_2.jmp") /*###*/
Lorsque j'essaie de formater le format de colonne du tableau de données JMP en JSL, j'obtiens la même erreur lors de l'enregistrement sous l'instruction.
J'ai cherché cela pendant des heures et je n'arrive pas à comprendre.
Voici mon code.Toute aide serait grandement appréciée.
Names Default To Here( 1 );
dt1 = open("B:\Test1.jmp");
dt2 = Open("B:\Test2.jmp",
Worksheets( "WorkSheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
column(dt2,"Column1") << data type(Numeric)<<MODELING type=""></MODELING>Re : Comment puis-je changer le format de colonne dans JSL ou gérer l'erreur Send Expects Scriptable ObjectJe vous suggère fortement de prendre l'habitude d'aller à l'index des scripts pour obtenir la description et des exemples des différentes fonctions que vous utilisez.
Aide==>Index des scripts
Ou pour simplement obtenir une description, une fois que vous avez tapé un nom de fonction, avec le début "(" vous pouvez survoler le nom de la fonction et il affichera une description de la fonction.
Re : Comment puis-je changer le format de colonne dans JSL ou gérer l'erreur Send Expects Scriptable ObjectCela a fonctionné comme un champion, donc le numéro de colonne est la syntaxe correcte et non le nom de la colonne. Bah, j'aurais dû pouvoir comprendre ça.
Merci!Re : Comment puis-je changer le format de colonne dans JSL ou gérer l'erreur Send Expects Scriptable ObjectOk, je suis tombé sur une solution partielle, la feuille de calcul pour dt1 et dt2 contient à la fois des données de caractères et des données numériques, bien que les deux fichiers Excel soient formatés en "Général" dans Excel, pour une raison quelconque, la table dt2 n'aime pas ça et m'a forcé à formater les colonnes numériques en tant que données « numériques ».
Il existe donc une solution, mais j'aimerais savoir pourquoi le script ne semble pas fonctionner lors de la modification des paramètres par programme.Re : Comment puis-je changer le format de colonne dans JSL ou gérer l'erreur Send Expects Scriptable ObjectJe pense que je vois le problème.Lorsque vous précisez
column(dt2,"Column1") << data type(Numeric)<<MODELING type=""></MODELING>
JMP recherche une colonne nommée "Colonne1".....Oui....Excel définira les noms de colonnes à partir du tableau Excel, car cela est spécifié dans la définition de la façon de lire le fichier Excel.
Has Column Headers( 1 )
Donc, si vous souhaitez modifier le type de données, etc. en utilisant la position de la colonne, vous devez spécifier
column(dt2,1) << data type(Numeric)<<MODELING type=""></MODELING>
Re : Comment puis-je changer le format de colonne dans JSL ou gérer l'erreur Send Expects Scriptable ObjectOui, vous avez raison, dt2 est un fichier Excel, désolé, ce code est générique par rapport à ce que je fais avec les fichiers réels.
j'ai deux colonnes qui ont le même titre (ID d'échantillon).
Le code fonctionne de la même manière, lors de l'ouverture de dt2, les colonnes de données ne sont pas numériques/continues et si j'essaie de modifier les paramètres de colonne dans le script, j'obtiens l'erreur ci-dessus. Comment JMP interprète-t-il les données Excel avec un en-tête de colonne ? Pourrait-il utiliser le texte de l'en-tête de colonne pour définir les paramètres ?Re : Comment puis-je changer le format de colonne dans JSL ou gérer l'erreur Send Expects Scriptable ObjectIl y a quelques problèmes que je vois.Je ne sais pas si dt2 ouvre une table de données .jmp ou un fichier Excel.Vous avez spécifié que dt2 est un fichier .jmp, mais vous avez inclus des spécifications Excel.
Ensuite, la forme appropriée du code "Par colonnes correspondantes" devrait être :Column1 = :Column1........mais en l'état, si les deux colonnes existent dans les tables de données, il ne devrait pas y avoir de problème.
J'ai ajouté quelques instructions pour garantir que la table de données dt3 existe avant et après la fermeture des tables de données dt1 et dt2.
Exécutez le code et voyez ce que le journal JMP a imprimé
Names Default To Here( 1 );
dt1 = open("B:\Test1.jmp");
dt2 = Open("B:\Test2.jmp", // Is this a JMP table or an Excel..... the .jmp extension seems strange here
Worksheets( "WorkSheet1" ),
Use for all sheets( 1 ),
Concatenate Worksheets( 0 ),
Create Concatenation Column( 0 ),
Worksheet Settings(
1,
Has Column Headers( 1 ),
Number of Rows in Headers( 1 ),
Headers Start on Row( 1 ),
Data Starts on Row( 2 ),
Data Starts on Column( 1 ),
Data Ends on Row( 0 ),
Data Ends on Column( 0 ),
Replicated Spanned Rows( 1 ),
Replicated Spanned Headers( 0 ),
Suppress Hidden Rows( 1 ),
Suppress Hidden Columns( 1 ),
Suppress Empty Columns( 1 ),
Treat as Hierarchy( 0 ),
Multiple Series Stack( 0 ),
Import Cell Colors( 0 ),
Limit Column Detect( 0 ),
Column Separator String( "-" )
)
);
column(dt2,"Column1") << data type(Numeric)<<MODELING type=""></MODELING>