Helpful Information from the community:
Subscripting:
Display Boxes with Subscripts
Xpath:
Using JSL to Develop Efficient, Robust Applications (EU 2018 415)
xPath coding help / JMP Discovery 2015 - Mining JMP Reports - v10.pdf (Xpath "family" tree)
All OutlineBoxes with title condition By XPath (@helpKey)All in One:
I-Can-See-It-How-Do-I-Get-It (Discovery Summit 2024, @Mark_Bailey , @tonya_mauldin)
There are some cases where DisplayBox Subscripting like
current report()["Summary Statistics"]
gives surprising results. Which information is accessed via the string?
In this example,
JMP doesn't find the first Local Data Filter -- maybe: because it's title is changed to "LDF"?
JMP finds the first summary statistics - although it's title is changed to "statistics".
I first noticed this behavior with a Graph Builder outline box. JMP finds it even when the title is changed.At the time, I thought JMP was looking for the @helpKey - and that is why it can still find it.
But Summary Statistics (in the example here) doesn't have a helpKey.
So JMP finds something that is not visible to the user.
And it won't find it if it's a local data filter...
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ); New Window( "test", V Splitter Box( Distribution( Continuous Distribution( Column( :height ) ), Local Data Filter(Title( "LDF" ) ), Local Data Filter, SendToReport( Dispatch( {}, "Distributions", OutlineBox, {Set Title( "hello" )} ), Dispatch( {"height"}, "Summary Statistics", OutlineBox, {Set Title( "statistics" )} ) ) ), Distribution( Continuous Distribution( Column( :height ) ), Local Data Filter( ) ) ) ); current report()["Local Data Filter"] << select(); //current report()["Distributions"] << select(); current report()["Summary Statistics"] << select();
There are different ways how the titles of the OutlineBoxes are changes, so let's try:
dt = Open( "$SAMPLE_DATA/Big Class.jmp" ); New Window( "test", V Splitter Box( Distribution( Continuous Distribution( Column( :height ) ), Local Data Filter( ), Local Data Filter, SendToReport( Dispatch( {}, "Distributions", OutlineBox, {Set Title( "hello" )} ), Dispatch( {"height"}, "Summary Statistics", OutlineBox, {Set Title( "statistics" )} ), Dispatch( {}, "Local Data Filter", OutlineBox, {Set Title( "LDF" )} ) ) ), Distribution( Continuous Distribution( Column( :height ) ), Local Data Filter( ) ) ) ); current report()["Local Data Filter"] << select(); current report()["Summary Statistics"] << select();
and indeed:
If the title is changed by sending a dispatch message to the report layer, the report layer will also find the display box via the original title.
Now, let's change the environment:
It's great, JMP doesn't get fooled by the titles, it still finds the display boxes via the english names
current report()["Local Data Filter"] << select(); current report()["Summary Statistics"] << select();
Unfortunately, a German JSL developer will see this information in the "Properties" menu:
and it's quite likely that an English speaking colleague will see:
Note to myself: