JSL-オープングラフのX値とY値を取得しますこんにちは
開いているデータテーブルをコンボボックスで選択できるスクリプトがあります

その下にグラフがあるデータテーブルがある場合

このグラフを選択するにはどうすればよいですか?
その理由は、X列とY列の名前を取得したいからです。
たとえば、上の図でマークされている最初のグラフでは、testとtest2を取得したいと思います。

このグラフはすでにJMPで開いており、私はそれらを制御できません(グラフを作成するスクリプトの編集に関して)
スクリプティングRe:JSL-オープングラフのX値とY値を取得します記述したいコードを実行する前にJMPセッションを制御できなかった場合は、次のようなアプローチを試すことができます。
NamesDefaultToHere(1);
tableOfInterest = "Big Class";
allWindows = GetWindowList();
tableWindows = {};
for (w = 1, w <= NItems(allWindows), w++,
winTitle = allWindows[w] << GetWindowTitle;
if (StartsWith(winTitle,tableOfInterest) & (allWindows[w] << WindowClassName) == "Report", InsertInto(tableWindows, allWindows[w]));
);
for (w = 1, w <= NItems(tableWindows), w++,
Print(tableWindows[w] << GetWindowTitle);
);
「ヘルプ>スクリプトインデックス」を使用して、さまざまなコマンドがどのように機能するかを確認します。
子レポートのリストを取得したら、それぞれを調べて、必要なものを引き出すことができます。 ただし、レポートツリーは複雑になる可能性があるため、十分に堅牢にするために多少の作業が必要になる場合があることに注意してください。
Re:JSL-オープングラフのX値とY値を取得します助けてくれてありがとう
XY値(赤でマークされているもの)を取得したいのですが、その値にアクセスする方法がわかりません
私にできることは、タイトル(黄色でマークされているもの)を取得することだけです。
「getText」の代わりに「getXML」を使用すると名前も表示されることがわかりましたが、そこにはたくさんのデータがあり、もっと簡単な方法があるといいのですが。

Re:JSL-オープングラフのX値とY値を取得しますこれは、プラットフォーム(この場合はGraph Builder)によって記述されたJSLを使用して要素を見つけるアプローチです。以下を説明するために、これを含めます。
- expr()
- 名前expr()
- arg()
- 頭 ( )
- <<スクリプト可能なオブジェクトを取得します(これにより、スクリプトを取得したGraph Builderオブジェクトが返されます)
これまで使用したことがない場合は、スクリプトガイドでこれらを確認することをお勧めします。 それらは強力ですが、ある程度の練習が必要です。
条件文を入れていないので(そうしたいのですが...ウィンドウ名などを確認してください)、スクリプトが以下のように機能することを確認するために次の手順を実行します。
1)現在のレポートとグラフを閉じます。
2)グラフビルダーグラフを作成します。
3)スクリプトウィンドウで以下のスクリプトを実行します。 (これを外部ループでラップして、複数のグラフウィンドウを循環させることもできます。 繰り返しになりますが、これは全体的なアイデアを説明することを目的とした単なる骨格スクリプトです。)
乾杯、
ブレイディ
</CODE></P>
<PRE><CODE class=" language-jsl">Names Default To Here( 1 );
winList = Get Window List( Type( "reports" ) );
obj = winlist[1][Outline Box( 1 )] << Get Scriptable Object;
script = obj << get script;
i = 1;
//move through the script's arguments until you get to the Variables ( ) argument.
While( Head( exp = Arg( Name Expr( script ), i ) ) != Expr( Variables ), i++ );
xList = ylist = {};
nexp = name expr ( exp ); //optional; this allows us to type nexp instead of name expr ( exp ) in the code below.
//cycle through the arguments in the Variables ( ) section. If X ( ) or Y ( ) is
//encountered, insert into the appropriate list.
For( i = 1, i <= N Arg( nexp ), i++,
If( Head( var = Arg( nexp, i ) ) == Expr( X ), Insert Into( xList, Arg( Name Expr( var ), 1 ) ));
If( Head( var = Arg( nexp, i ) ) == Expr( Y ), Insert Into( yList, Arg( Name Expr( var ), 1 ) ));
);
Show( xList, yList );