cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
The Discovery Summit 2025 Call for Content is open! Submit an abstract today to present at our premier analytics conference.
Choose Language Hide Translation Bar
View Original Published Thread

現在のレポートのスクリプト可能なオブジェクト

hogi
Level XII

こんにちは、

現在のレポートのスクリプト可能なオブジェクトを取得する最適な方法は何ですか?

グラフビルダーオブジェクトの場合は、

gb = Current Report()["Graph Builder"] << get scriptable object 

これは驚くほど堅牢ですが、Graph Builder オブジェクトに対してのみ機能します。ユーザーがタイトルを変更した場合でも機能します。

グラフビルダーがない場合は、試すことができます

so = Current Report()[Outline Box( 1 )] << get scriptable object

ローカルデータフィルターがない場合でも動作します。
列スイッチャーはありません[ああ、列スイッチャーはColumnSwitcherContextOutlineBoxであり、 OutlineBox ではありません]
ユーザー定義のダッシュボードはありません[ああ、ダッシュボードはOutlineBoxではなくTabPageBoxで作成されます]

ローカル データ フィルターの場合、タイトルを確認できます。

ob = Current Report()[Outline Box( 1 )];
If( (ob << Get Title) == "Local Data Filter",
	ob = Current Report()[Outline Box( 2 )]
);ob << get scriptable object;

この方法は、英語の言語設定で、ユーザーがOutlineBoxのタイトルを変更していない場合にのみ機能します。

したがって、スクリプト可能なオブジェクトがデータ フィルターであるかどうかを確認することをお勧めします。

Try (so = Current Report()[Outline Box( 1 )] << get scriptable object;
if (Char(Head(so)) == "Data Filter[]" ,
so = Current Report()[Outline Box( 2 )] << Get Scriptable Object),
	Caption("failed to get a scriptable object") // user defined Dashboard
)

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

1 ACCEPTED SOLUTION

Accepted Solutions
jthi
Super User

Re: 現在のレポートのスクリプト可能なオブジェクト

「@helpKey」XML属性を使用する

Names Default To Here(1);

obs = Current Report() << XPath("//OutlineBox[@helpKey and not(@helpKey = 'Data Filter')]");
If(N Items(obs) > 0,
	obj = obs[1] << Get Scriptable Object;
	Show(obj);
);

Write();

XPath クエリは、動作場所に応じて追加の変更が必要になる場合があります。XPath を使用すると、JMP の XPath クエリが XML を処理できない問題が発生する可能性があることに注意してください ( << XPath() で XML_PARSE_HUGE を有効にする方法は? )。

4 REPLIES 4
jthi
Super User

Re: 現在のレポートのスクリプト可能なオブジェクト

「@helpKey」XML属性を使用する

Names Default To Here(1);

obs = Current Report() << XPath("//OutlineBox[@helpKey and not(@helpKey = 'Data Filter')]");
If(N Items(obs) > 0,
	obj = obs[1] << Get Scriptable Object;
	Show(obj);
);

Write();

XPath クエリは、動作場所に応じて追加の変更が必要になる場合があります。XPath を使用すると、JMP の XPath クエリが XML を処理できない問題が発生する可能性があることに注意してください ( << XPath() で XML_PARSE_HUGE を有効にする方法は? )。

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

hogi
Level XII

Re: 現在のレポートのスクリプト可能なオブジェクト

ああ、いいですね。ありがとう。

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

txnelson
Super User

Re: 現在のレポートのスクリプト可能なオブジェクト

この問題全体は、

Distribution(
	Continuous Distribution( Column( :height ), Process Capability( 0 ) ),
	Local Data Filter
);
ob = Current Report()[Outline Box( 1 )];
If( (so << Get Title) == "Local Data Filter",
	ob = Current Report()[Outline Box( 2 )]
);
ob << get scriptable object;

プラットフォームの実行時にスクリプト可能なオブジェクトが取得された場合

ob = Distribution(
	Continuous Distribution( Column( :height ), Process Capability( 0 ) ),
	Local Data Filter
);

複数のプラットフォームが実行され、スクリプト可能オブジェクトが同じ JSL 変数を使用して参照される場合でも、単純な JMP リストを使用してスクリプト可能オブジェクトを収集できるため、Current Report() によって生じる可能性のある混乱をすべて回避できます。

次のスクリプトは、サンプルデータテーブルBig Classを使用して、実行時にスクリプト可能なオブジェクトを取得することで、現在のレポート()の問題を回避する方法を示しています。

names default to here(1);
dt=current data table();
objectList = {};

dis = Distribution(
	Continuous Distribution( Column( :height ), Process Capability( 0 ) )
);
insert into(objectList, dis);

show(current report()[outlinebox(1)]<
新しい機能のウィッシュリスト項目
<< Get Current Report Scriptable Object

正当化されるかもしれない

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。

hogi
Level XII

Re: 現在のレポートのスクリプト可能なオブジェクト

私の主な用途:
既存のレポートを調整/操作するためのコマンド。
したがって、リストを埋める機会はありません。


翻訳者 wrote:

新しい機能のウィッシュリスト項目

<< Get Current Report Scriptable Object

正当化されるかもしれない

わかりました:
メッセージ: 現在のレポートのスクリプト可能オブジェクトを取得する

ob & so -> メイン投稿で修正

この投稿のオリジナルは 、English (US) で書かれており、ユーザビリティ向上のため自動翻訳機能を使用して表示しています。コメントを投稿すると、オリジナルの言語(English (US))やご指定の言語 でも表示されます。