JMP ホームページで直接アドインを実行する際のバグこんにちは、JMP コミュニティの皆さん:
2 つのスクリプトをアドインに保存すると、特定の状況でバグが発生します。スクリプトは次のように動作します。
- 最初のアドインは新しいテーブルを作成し、いくつかの新しい列を作成します。この新しいテーブルを「計算テーブル」と呼びます。
- 次に、「計算テーブル」で 2 番目のアドインを実行します。これには、別の既存のファイル (「生データ テーブル」と呼びます) を開き、「生データ テーブル」からデータを取得して、「計算テーブル」に何かを入力する必要があります。
//This is the first script
Names Default To Here( 1 );
New Table( "Calculate table");
dt = current data table();
newcolumn = {"X", "Y"};
for each({colval},newcolumn,
dt << new column(colval);
);
//This is the starting lines of 2nd script
Names Default To Here( 1 );
dt = current data table();
file = Pick file( "Select raw data table" );
if(is empty(file),
show("No file selected");
stop();
);
Try(
dt2 = open(file);
,
show("No file selected");
stop();
);<BR /> // The following code are not shown here
バグのない状況:
- 任意のデータテーブルを開いて最初のアドインを実行し、新しいテーブルで2番目のアドインを実行すると、動作します
バグの状況:
- JMPホームページで最初のアドインを直接実行し、次に2番目のアドインを実行すると、2番目のアドインにバグが発生します。
基本的に、2 番目のアドインは、「生データ テーブル」からデータと列の数式を取得し、「計算テーブル」に入力して、スライダー ボックスを含む新しいウィンドウを作成します。バグが発生するとスライダー ボックスは機能しなくなりますが、データと数式の取得は引き続き機能します。
自動化とスクリプトRe: JMP ホームページで直接アドインを実行するとバグが発生する推測ですが、現在のデータ テーブルは期待したものではありません。ログに出力して確認してみてください。現在のデータ テーブルは、多くの場合ウィンドウに属するコンテキストにあり、ホーム ウィンドウは別のコンテキストを追加していると思います。テーブルからアドインを実行すると、(1) テーブルをタッチしてそのテーブルが最新であることを確認し、(2) そのテーブルを現在のテーブルとして持つコンテキストを取得することができます。
Re: JMP ホームページで直接アドインを実行するとバグが発生するおっしゃるとおり、dt と dt2 を印刷しましたが、正しい結果でした。
その後、スライダーボックスで列を呼び出すときに、どのデータテーブルを指定していないことに気づいたので、列の前にdt:を付けました。
dt2を閉じた後、コードの途中でさらに1つの現在のデータテーブル(dt)を追加します。
今ではうまく動作します。
lubPP = Lineup box(NCol(1),
PPtb = Text Box( "PP: " || Char( PPmin ) ),
PPsb = Slider Box(
PPmin, PPmax, PPValue,
PPb << Set Text( "PP: " || Char( PPValue ) );
:PP << set each value(PPValue); // I should use dt:PP here
new = dt:NewPP << get values;