対話型インターフェイスからのデータの入力<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
JSL では、ユーザーが列に値を入力できる対話型インターフェイスを作成したいと考えています。 列は連続タイプである必要があります。
たとえば、ユーザーがダイアログ ボックスに値を入力すると、その値が列に入力されます。
x = 上限、y = 下限
年齢 名前 上限 下限
40 ピーター 30 45
これを達成する方法について何か提案がある人はいますか?
- アンダース
Re: インタラクティブインターフェースからのデータ入力行単位の編集が問題ない場合は、これについても触れておきたいと思います。
デフォルトの名前はここにあります( 1 ) ;
// 新しいデータテーブルとその列を作成します
dt =新しいテーブル( 「限界」 ) ;
dt <<新しい列( "下限" 、数値、継続的) ;
dt <<新しい列( "上限" 、数値、継続的) ;
dt <<行エディター;
これには、USL > LSL 要件が強制されないという欠点がありますが、「dt」への変更をサブスクライブすることでこれを実行できる可能性があります (「ヘルプ > スクリプト インデックス」で「サブスクライブ」を探してください)。 また、テーブル内の列に列プロパティを追加できることにも注意してください。 http://www.jmp.com/support/help/Expression_Data.shtml 、これには値の「範囲チェック」が含まれます。
Re: インタラクティブインターフェースからのデータ入力どうもありがとうございます。これはまさに私が探していたものであり、それ以上のものでした。
乾杯
-アンダース
Re: インタラクティブインターフェースからのデータ入力アンダース、
ご希望どおりの場合、以下のスクリプトは上限と下限を入力し、データ テーブルに追加します。この例が何をしているのかを理解できるように、スクリプトに注釈を付けました。
名前のデフォルトは Here( 1 );
// 新しいデータテーブルとその列を作成します
dt = 新しいテーブル( "制限" );
dt << New Column( "UpperLimit", Numeric, Continuous );
dt << New Column( "LowerLimit", Numeric, Continuous );
// データを入力するための表示ウィンドウを開きます
InputWindow = 新しいウィンドウ( "入力を入力",
// 表示位置を構造化するために頂点リスト ボックスを追加します
V リストボックス(
// スペースを追加します
スペーサーボックス( サイズ( 1, 10 ) )、
// 指示文を表示します
Text Box( " 入力を入力してください" ),
スペーサーボックス( サイズ( 1, 10 ) )、
// 以下の表示は並べて表示する必要があります
H リスト ボックス(
// ユーザーに入力するデータを知らせるテキストを表示します
テキストボックス(「下限値を入力」)、
スペーサーボックス( サイズ( 10, 1 ) )、
// 数値編集ボックスを使用してユーザー入力と
// 表示オブジェクトに「LLimit」という名前を付けます
LLimit = 数値編集ボックス( . )、
スペーサーボックス( サイズ( 10, 1 ) )、
// ユーザーに入力するデータを知らせるテキストを表示します
テキストボックス(「上限値を入力」)、
スペーサーボックス( サイズ( 10, 1 ) )、
// 数値編集ボックスを使用してユーザー入力と
// 表示オブジェクトに「ULimit」という名前を付けます
ULimit = 数値編集ボックス( . )
)、
スペーサーボックス( サイズ( 1, 10 ) )、
// いくつかのコントロール ボタンを追加します
H リスト ボックス(
// 最初のボタン ボックスは、データ テーブルに値を追加します。
// 値は有効です
Button Box( "値を追加",
If( Is Missing( LLimit << get ) == 0 & Is Missing( ULimit << get ) == 0 & (ULimit << get) > (LLimit << get),
// 値が有効な場合、データテーブルに行を追加し、値を設定します
dt <<行を追加( 1 );
dt:LowerLimit[N Rows( dt )] = LLimit << get;
dt:UpperLimit[N Rows( dt )] = ULimit << get;
、
// 値が無効な場合は、値を missing に設定し、
// ユーザーにダイアログを表示します
LLimit << set( . );
ULimit << set( . );
Dialog( "入力された値は無効です:" );
)
)、
スペーサーボックス( サイズ( 10, 1 ) )、
// このボタン ボックスは表示ウィンドウを閉じます
ボタン ボックス( "追加を停止"、InputWindow << ウィンドウを閉じる )
)
)
);
Re: インタラクティブインターフェースからのデータ入力こんにちはイアン。素早い回答ありがとうございます。
私は JSL を初めて使用するため、まだ構文を完全に把握しておらず、ユーザーからの入力を単に変数に格納するコードを書こうとしてもすべて失敗しました。 ただし、私は Java プログラミングの基本をいくつか知っており、私が探している対応する機能はスキャナー クラスです。
Javaでの例:
スキャナ sc = 新しいスキャナ (System.in);
Int 上限 = scanner.nextInt();
JMP では次のように機能したいと考えています。
私が想像できる限り、新しい列と他の列の両方のすべての行が表示されるはずです (これは将来変更される可能性があります)。
試す (
UpperLimit = スキャナー.nextInt
dt = 現在のデータテーブル ();
dt << New Column ("UpperLimit", Numeric, "Continuous", Values ( UpperLimit ) );
//LowerLimitでも同じことを行う必要があります
)
if (上限 < 下限、 throw ("!Error") );
私の例を理解していただければ幸いです。
BR
アンダース
Re: インタラクティブインターフェースからのデータ入力これを行う方法は数多くありますが、優れた UI デザインは、ユーザーが入力タスクを確実に実行できるように、ユーザーにどのような情報を表示するかによって決まります。 テーブル内のすべての行を表示するか、それとも一度に 1 つだけ表示する必要がありますか? 他の 1 つ以上の列の既存の値も表示する必要がありますか?