JSL の列形式を変更する方法、または Send Expects Scriptable Object エラーに対処する方法私はJSLスクリプトで(2)テーブルを結合することに取り組んでいます。私が抱えている問題は、新しく結合されたテーブルを保存することです。(2)の問題があります。
最初の問題は、(Test2) のデータ列が文字/名義として JMP に入力され、数値/連続である必要があることです。Excel スプレッドシートの列形式を数値に変更または作成すると、コードの dt3 <
Send は 'Send' のアクセスまたは評価で Scriptable Object を予期します , dt3 << /*####*/save as("B:\JoinTest1_2.jmp") /*###*/
JSL で JMP データ テーブルの列形式をフォーマットしようとすると、名前を付けて保存する際に同じエラーが発生します。
私はこれを何時間も検索しましたが、それを理解することはできません.
これが私のコードです。どんな助けでも大歓迎です。
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: JSL で列形式を変更したり、Send Expects Scriptable Object エラーに対処するにはどうすればよいですかScripting Index にアクセスして、使用しているさまざまな関数の説明と例を確認する習慣を身に付けることを強くお勧めします。
ヘルプ==>スクリプト インデックス
または、単に説明を取得するには、関数名を入力したら、「(」で始まる関数名にカーソルを合わせると、関数の説明が表示されます。
Re: JSL で列形式を変更したり、Send Expects Scriptable Object エラーに対処するにはどうすればよいですかそれはチャンピオンのように機能したので、列番号は列名ではなく正しい構文です。 ああ、私はそれを理解することができたはずです。
ありがとう!Re: JSL で列形式を変更したり、Send Expects Scriptable Object エラーに対処するにはどうすればよいですかわかりました私は部分的な解決策に出くわしました.dt1とdt2の両方のスプレッドシートには文字データと数値データの両方がありますが、両方のExcelファイルはExcelで「一般」としてフォーマットされていますが、何らかの理由でdt2テーブルが気に入らず、数値列を「数値」データとしてフォーマットするように強制しました。
回避策がありますが、プログラムでパラメーターを変更するときにスクリプトが機能しないように見える理由を知りたいです。Re: JSL で列形式を変更したり、Send Expects Scriptable Object エラーに対処するにはどうすればよいですか私は問題を見ていると思います。指定すると
column(dt2,"Column1") << data type(Numeric)<<MODELING type=""></MODELING>
JMPは「Column1」という名前の列を探しています.....はい....Excelは、Excelファイルの読み取り方法の定義で指定されているため、Excelテーブルから列名を設定します
Has Column Headers( 1 )
そのため、列の位置を使用してデータ型などを変更する場合は、指定する必要があります
column(dt2,1) << data type(Numeric)<<MODELING type=""></MODELING>
Re: JSL で列形式を変更したり、Send Expects Scriptable Object エラーに対処するにはどうすればよいですかはい、あなたは正しい dt2 は Excel ファイルです。申し訳ありませんが、このコードは私が実際のファイルで行っていることと共通です。
同じタイトル (サンプル ID) を持つ 2 つの列があります。
コードは同じように実行されます。dt2 を開くと、データ列は数値/連続ではなく、スクリプトで列パラメーターを変更しようとすると、上記のエラーが発生します。 JMP は列ヘッダーのある Excel データをどのように解釈しますか?列ヘッダーのテキストを使用してパラメータを設定できますか?Re: JSL で列形式を変更したり、Send Expects Scriptable Object エラーに対処するにはどうすればよいですか私が見るいくつかの問題があります。dt2 が .jmp データ テーブルを開いているのか、Excel ファイルを開いているのかわかりません。dt2 が .jmp ファイルであることを指定しましたが、Excel の仕様が含まれています。
次に、「By Matching Columns」コードの適切な形式は :Column1 = :Column1........ですが、データ テーブルに両方の列が存在する場合、問題はないはずです。
データ テーブル dt1 と dt2 を閉じる前と閉じた後の両方にデータ テーブル dt3 が存在するように、いくつかのステートメントを追加しました。
コードを実行し、JMP ログが出力した内容を確認します
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>