ツリー構造を使用してプラットフォーム内のオブジェクトへの参照を見つけるにはどうすればよいですか?こんにちは。スクリプトで分析プラットフォームのオブジェクト (グラフ、テーブルなど) への参照を使用しようとしていますが、これまでに見た例からすると、あまり直感的ではないと思います。
複数の使用例がありますが、分析プラットフォーム内のオブジェクトへの参照を見つける方法に関する一般的な説明またはマニュアルを見つけたいと考えています。 おそらくこのサイトのどこかにあると思いますが、見つかりませんでした。
自動化とスクリプト作成マスカスタマイゼーションRe: ツリー構造を使用してプラットフォーム内のオブジェクトへの参照を見つけるにはどうすればよいですか?表示ボックスへの最適なパスを決定するのに役立つユーティリティ関数もあります。

Re: ツリー構造を使用してプラットフォーム内のオブジェクトへの参照を見つけるにはどうすればよいですか?
JMP17 にアクセスできないためです。
本当?
私はそれを推測したでしょうあなた新しいバージョンがリリースされた初日に、特別で個人的な無料の JMP Pro シグネチャ エディションを入手してください
...他の人をサポートする際にできる限りあなたをサポートします:)
Re: ツリー構造を使用してプラットフォーム内のオブジェクトへの参照を見つけるにはどうすればよいでしょうか?もう一つのトリック:
現在のレポートの XML コードを生成します(オブジェクトのレポートだけでなく、データ フィルターなども考慮してください)
以下のコードをキーボード ショートカットにリンクしました。これで、必要なレポートの XML コードを取得できるようになりました。
レポートを選択して、(例) CTRL - Alt + Xを押します。:)
Local({myTitle= Current Report()<< get Window Title() || " - (xml)"},
New Window (myTitle ,<<TYPE></TYPE>Re: ツリー構造を使用してプラットフォーム内のオブジェクトへの参照を見つけるにはどうすればよいですか?Jarmo が最初の返信で示したように、JMP17 ではオブジェクトの正しい XPath を取得することが少し簡単になりました。
オブジェクトを右クリックし、プロパティの表示(...必要に応じて選択を調整します) をクリックしてください
右側のボックス パス メニューで次のようにします。

Re: ツリー構造を使用してプラットフォーム内のオブジェクトへの参照を見つけるにはどうすればよいですか?Oneway を新しいウィンドウでラップしてみてください
Names Default To Here(1);
// group by sex
dt = Open("$SAMPLE_DATA\Big Class.jmp");
nw = New Window("", ow = dt << Oneway(Y(:height), X(:age), By(:sex), Means and Std Dev(1), Mean Error Bars(1), Std Dev Lines(1), Mean of Means(1)));
// get XML fails for this platform
testXML = nw << Get XML;
Write(testXML);
ncbList = nw << XPath("\[//OutlineBox[text()="Means and Std Deviations"]//NumberColBox]\");
Re: ツリー構造を使用してプラットフォーム内のオブジェクトへの参照を見つけるにはどうすればよいですか?By() を使用すると、単一のプラットフォームではなくプラットフォームのリストを返すメッセージが表示されます。
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
ow = dt << Oneway(
Y( :height ),
X( :age ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
Mean of Means( 1 )
);
Show( ow );
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
ow_by = dt << Oneway(
Y( :height ),
X( :age ),
By( :sex ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
Mean of Means( 1 )
);
Show( ow_by );
ログ:
/*:
ow = Oneway[];
ow_by = {Oneway[], Oneway[]};Re: ツリー構造を使用してプラットフォーム内のオブジェクトへの参照を見つけるにはどうすればよいですか?XPath の例を見て、プラットフォームで「group by」変数を使用するときに問題の多くが発生することがわかりました。
XPath リンクにある例を見てみましょう。
このスクリプトは正常に動作します
// not grouped by sex
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
ow = dt << Oneway(
Y( :height ),
X( :age ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
Mean of Means( 1 )
);
testXML = Report (ow) << Get XML;
Write( testXML );
/* Return a list of NumberColBox references */
ncbList = Report( ow )["Means and Std Deviations"] << XPath( "//NumberColBox" );
ただし、性別でグループ化すると、XML を取得するとすでにエラーがスローされます。 これをどう処理するか?
// group by sex
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
ow = dt << Oneway(
Y( :height ),
X( :age ),
By( :sex ),
Means and Std Dev( 1 ),
Mean Error Bars( 1 ),
Std Dev Lines( 1 ),
Mean of Means( 1 )
);
// get XML fails for this platform
testXML = Report (ow) << Get XML;
Write( testXML );
/* Return a list of NumberColBox references */
ncbList = Report( ow )[???]["Means and Std Deviations"] << XPath( "//NumberColBox" );
Re: ツリー構造を使用してプラットフォーム内のオブジェクトへの参照を見つけるにはどうすればよいですか?ありがとう、これはまさに私が探していたものです。 「このコードを盗む」というプレゼンテーションは覚えていますが、それももう見つかりませんでした。
私はこれを解決策として受け入れますが、ユーザーがどこから始めればよいかを理解できるように、この主題については JMP の学習や JMP 内のスクリプト索引についてもっと簡潔に説明する価値があると依然として感じています。
Re: ツリー構造を使用してプラットフォーム内のオブジェクトへの参照を見つけるにはどうすればよいですか?私の意見では、JMP には非常に多くの異なるプラットフォームがあり、そのうちのいくつかは他のものとは異なる動作をするため、これに対する一般的な解決策はありません。 私の一般的なアプローチは、次のように XML を調べることです。 << XML を取得次に、XPath (XPath は JSL の外部で動作するので便利です) をいくつか組み合わせて使用します。 << 兄弟、<< 子、<<親... 非常に単純なケースであれば、レポートの添字を使用するかもしれませんスクリプトガイド > 表示ツリー > JMP レポートのナビゲート > 表示ボックス オブジェクトの参照。
以下にいくつかのリンクを示します。