@フェリ、
簡単な例を除いて、DashboardBuilder を使用していません。 Application Builder を使用するか、スクリプトを作成してアプリケーションを作成します。あなたはそれについて読むのが好きかもしれません. いくつかは本当にそれが好きです。 しばらくの間スクリプトを作成している他の人は、通常、JSL を介して物事を処理します。
以下は、タスクの ApplicationBuilder の開始時のスクリーン ショットです。
第11章を読むのが良いスタートだと思います。
@gzmorgan0
とても感謝しています!
あなたは私の望む解決策を正確に達成することができました。
以前の多くの試行の 1 つで、テーブル変数をいじっていました。スライダーは機能しましたが、ラジオ ボタンは機能しませんでした。
私が欠けていた鍵は次のとおりです。
dt << Set Table Variable("Faktor", Expr(num (cat << Get Selected) ) );Faktor のテーブル変数は常に文字列であり、式が台無しになっていたため、他の方法を見つける必要がありました。
JSL/アプリケーションの構築を開始するときに多くの人に推奨されていたので、Dashboard Builder/Application Builder を使用してグラフを構築しようとしていましたが、あなたのヒントを実装し、コンテナーなどをさらに掘り下げます。
ご協力ありがとうございました。
@フェリ、
このスクリプトには、問題を引き起こす項目がいくつかあります。
最初のものは猫、RadioBox です。 スクリプトは、ラジオ ボックスではなく、アウトライン ボックスに添付されます。
//Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} ),update ) //wrong, see below
Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} , update ) )
名前のデフォルトは Here(1) です。変数値がこのスクリプトにのみ適用されることを示します。Here 名前空間に対処する必要はなく、構文は Here:A です。 しかし、これは別の問題を引き起こします。数式列 G1scale、G2scale などには、:G1*A のような数式が含まれます。スクリプトが実行されると、または後でテーブルを開こうとすると、変数 A は不明です。いくつかの提案は次のとおりです。
- テーブル変数 A、B、C、Faktor を dt << Set Table Variable(A, 1) で作成します
- 式は :G1*:A になり、テーブルはスクリプトが実行されていないときにその値を認識します。
- スクリプトを複数回実行すると、複数の G1scale、G1scale 2 などが作成されます。これは、 または 列が存在するかどうかを確認し、存在する場合は削除するか、関数を割り当てるだけでよりエレガントに実行できます。 また、ウィンドウが閉じられると、nw の On Close 関数を使用してこれらの列を削除できます。
ただし、最大の提案は、対話型スクリプトを詳しく調べる場合は、JMP レポートを作成する方法を学ぶ必要があるということです。
コンテナ: HListBox 、 VListBox 、ラインナップボックス、パネルボックス.あなたのスクリプトはアウトラインボックス容器。
コントロール:ボタンボックス、スライダーボックス、チェックボックスなど
入力:コンボボックス、リストボックス、 ColListBoxなど
ウィンドウの結合に依存しないでください。
『JMP Scripting Guide』の第 11 章から始めるのがよいでしょう。 MainMenu > Help >JMP Documentation > JMP Scripting Guide >> 第11章
このレイアウト(ツリー構造)を使用したスクリプトが添付されています


みなさん、こんにちは。
スライダーを使用して 3 つの変数 A、B、C (連続レベルが許可されます) を変更し、ラジオ ボタンを使用して 4 番目の変数 Faktor (許可されるレベルが 4 つだけであるため) を変更できる小さなダッシュボード/アプリケーションを作成したいと考えています。

次に、データ テーブル G1、G2、G3 の列に A、B、C および Faktor を乗算し、グラフ ビルダーを使用して 3 つの新しい列すべての合計とともにプロットします。
Clear Log();
Delete Symbols();
Names Default To Here( 1 );
// default parameter values.
A = 1;
B = 2;
C = 3;
Faktor = 2;
dt = Current Data Table();
dt << New Column( "G1scale", Numeric, Continuous, Formula( (:G1 * Here( 1 ):A) * Here( 1 ):Faktor ) );
dt << New Column( "G2scale", Numeric, Continuous, Formula( (:G2 * Here( 1 ):B) * Here( 1 ):Faktor ) );
dt << New Column( "G3scale", Numeric, Continuous, Formula( (:G1 * Here( 1 ):C) * Here( 1 ):Faktor ) );
dt << New Column( "SumColumn", Numeric, Continuous, Formula( :G1scale + :G2scale + :G3scale ) );
これまでのところ、スライダーをドラッグするとデータ テーブルの数式列が更新されるようにスクリプトは動作しましたが、ラジオ ボタンで同じことを行うのが困難です。
update = Expr(
Here( 1 ):A = p;
Here( 1 ):B = r;
Here( 1 ):C = t;
Here( 1 ):Faktor = Choose( nw1["cat"], 1, 2, 3, 4 );
dt << rerun formulas;
Wait( 0 );
);
nw1 = New Window( "Faktor",
Outline Box( "Select Faktor", cat = Radio Box( {"1", "2", "3", "4"} ),update )
);
nw2=New Window( "Sliding",
Outline Box( "A",
Slider Box(
1,
10,
p,
update
)
),
Outline Box( "B",
Slider Box(
1,
10,
r,
update
)
),
Outline Box( "C",
Slider Box(
1,
10,
t,
update
)
)
);
g1=Graph Builder(
Size( 529, 456 ),
Show Control Panel( 0 ),
Variables(
X( :WL ),
Y( :G1scale ),
Y( :G2scale, Position( 1 ) ),
Y( :G3scale, Position( 1 ) ),
Y( :SumColumn, Position( 1 ) )
),
Elements( Points( X, Y( 1 ), Y( 2 ), Y( 3 ), Y( 4 ), Legend( 3 ) ) ),
SendToReport(
Dispatch( {}, "graph title", TextEditBox, {Set Text( "Simulated Plot" )} ),
Dispatch( {}, "Y title", TextEditBox, {Set Text( "Mygauss" )} )
)
);ラジオ ボタンを選択しても、データ テーブル (したがってグラフ) を更新できません。
2 番目の問題は、現在の 3 つのウィンドウを 1 つのウィンドウ (ダッシュボードまたはアプリケーション) に統合したいということです。 ウィンドウを結合するためにそれらをすべて選択できますが、それらをダッシュボード ビルダーに送信しようとすると、グラフ ビルダー ウィンドウのみが表示され、シルダーは表示されません。 シルダー/ラジオ ボタンをダッシュボード/アプリケーション ビルダーにドラッグするにはどうすればよいですか?