キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
言語を選択 翻訳バーを非表示
最初に公開されたスレッドを表示

JSL を使用してユーザーが入力した値を列の値に変換

adel922
Level I

私は JSL スクリプトの初心者です。

パネルボックスのエントリを使用して列を設定しようとしています。

以下のコードの一部では、入力された値 34 を取得して、Price Code という名前の列に値を入力しようとしています。 ただし、このコードを実行すると、空の列が返されます。

使ってみました値の取得 (数値)代わりに設定値(数値)それでも空の価格コード列が表示されます。

 

dataTable = New Table( "Data Table",
Add Rows( 3 ),
New Column( "Customer Name",
Character,
"Nominal",
Set Values( {"Jane", "Scott", "Abby"} )
),
New Column( "Dollar Amount",
"Continuous",
Set Values( [2002, 1323, 1954] )
)
);

popUp = New Window ("Number", << modal(),
        Panel Box("Enter a Number", lineup box ( N col (1)),
            number = Number edit box (34), ),
        Panel Box ("Actions", H List Box (  Button Box ("OK", keep_going = 1;                    
                    Num = :number << Get;),
           Button Box ("Cancel", keep_going = 0)   ),   ),
);

dataTable << New Column("Price Code",Numeric, "Continuous", Set Values(Num));

 

 

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

1 件の受理された解決策

受理された解決策
txnelson
Super User

Re: JSL を使用してユーザーが入力した値を列の値に変換する

簡単な2題の問題です。  

1. 参照したとき

Num = :number << Get;

変数番号のスコープが間違っています。変数の前の「:」は、データ テーブルで「Number」という名前の列を探すように JSL に指示します。 空白のままにするか、「::」を指定すると、メモリ変数が検索されます。

2. メモリ変数「NUM」のスケーラー値をテーブルのすべての行に入力する場合は、次のように指定する必要があります。

dataTable << New Column( "Price Code", Numeric, "Continuous", Set each Value( Num ) );

したがって、完全なスクリプトは次のようになります。

Names Default To Here( 1 );
dataTable = New Table( "Data Table",
 Add Rows( 3 ),
 New Column( "Customer Name", Character, "Nominal", Set Values( {"Jane", "Scott", "Abby"} ) ),
 New Column( "Dollar Amount", "Continuous", Set Values( [2002, 1323, 1954] ) )
);

popUp = New Window( "Number",
 <

 

17件の返信17
txnelson
Super User

Re: JSL を使用してユーザーが入力した値を列の値に変換する

簡単な2題の問題です。  

1. 参照したとき

Num = :number << Get;

変数番号のスコープが間違っています。変数の前の「:」は、データ テーブルで「Number」という名前の列を探すように JSL に指示します。 空白のままにするか、「::」を指定すると、メモリ変数が検索されます。

2. メモリ変数「NUM」のスケーラー値をテーブルのすべての行に入力する場合は、次のように指定する必要があります。

dataTable << New Column( "Price Code", Numeric, "Continuous", Set each Value( Num ) );

したがって、完全なスクリプトは次のようになります。

Names Default To Here( 1 );
dataTable = New Table( "Data Table",
 Add Rows( 3 ),
 New Column( "Customer Name", Character, "Nominal", Set Values( {"Jane", "Scott", "Abby"} ) ),
 New Column( "Dollar Amount", "Continuous", Set Values( [2002, 1323, 1954] ) )
);

popUp = New Window( "Number",
 <

 

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

adel922
Level I

Re: JSL を使用してユーザーが入力した値を列の値に変換する

どうもありがとうテキネルソン

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

adel922
Level I

Re: JSL を使用してユーザーが入力した値を列の値に変換する

どうもありがとうテキネルソン

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

shah47
Level II

Re: JSL を使用してユーザーが入力した値を列の値に変換する

この解決策に関して疑問に思ったのですが、サンプル名に関してユーザーから入力を取得し、それをサンプル番号として設定するにはどうすればよいでしょうか?

 

dt << New Column("Sample Number",Character,Formula(Left(:Sample, Length(:Sample) - 1)),EvalFormula);


InputWindow = New Window( "Enter Input", <

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

Re: JSL を使用してユーザーが入力した値を列の値に変換する

ラベルの String Col Box() を整理する Table Box() と入力値の Text Edit Box() の V List() を使用すると、よりクリーンでシンプルな UI を作成できると思います。

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

shah47
Level II

Re: JSL を使用してユーザーが入力した値を列の値に変換する

このようなもの? しかし、サンプル番号をユーザーが入力したサンプル名に置き換えるにはどうすればよいでしょうか?

 

// Create a new column for sample names
dt << New Column("Sample Number",Character,Formula(Left(:Sample, Length(:Sample) - 1)),EvalFormula);
dt = current data table();

InputWindow = New Window( "Enter Input", <

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

Re: JSL を使用してユーザーが入力した値を列の値に変換する

ここに 1 つの方法があります:

 

Names Default To Here( 1 );

InputWindow = New Window( "Enter Input",
 <

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

shah47
Level II

Re: JSL を使用してユーザーが入力した値を列の値に変換する

助けてくれてありがとう。でもエラーが発生しました。どこが間違っているのでしょうか?

dt << New Column("Sample Number",Character,Formula(Left(:Sample, Length(:Sample) - 1)),EvalFormula);
dt = current data table();

Names Default To Here( 1 );

InputWindow = New Window( "Enter Input",
 <

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

txnelson
Super User

Re: JSL を使用してユーザーが入力した値を列の値に変換する

ログのエラーメッセージとは何ですか?

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。