JSL - 取得開放圖 X 和 Y 值你好
我有一個腳本,可以讓我在組合框中選擇任何打開的資料表

如果我有一個數據表,下面有圖表
我怎麼才能選擇這個圖表?
原因是我想取得它們的 X 和 Y 列名稱
例如,在上圖中標記的第一張圖中,我想得到 test 和 test2

該圖表已在 JMP 中打開,我無法控制它們(就編輯創建它們的腳本而言)
資料存取大規模客製化回覆:JSL - 取得開放圖 X 和 Y 值這是一種使用平台(在本例中為 Graph Builder)編寫的 JSL 來尋找元素的方法。我將其包含在內是為了說明以下內容:
- 表達式 ( )
- 名稱表達式 ( )
- 參數 ( )
- 頭 ( )
- << 取得可編寫腳本的物件(這將傳回您從中取得腳本的圖形產生器物件)
如果您以前沒有使用過它們,您需要在腳本指南中閱讀它們。 它們很強大,但需要一些練習。
由於我沒有添加任何條件(您想要這樣做...檢查視窗名稱等),因此請執行以下操作以確保腳本按如下所示工作。
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 );
回覆:JSL - 取得開放圖 X 和 Y 值謝謝您的協助
我現在想要取得 XY 值(以紅色標記的內容),但我不確定如何存取該值
我所能做的就是獲得標題(以黃色標記的內容)。
我發現使用“get XML”而不是“get Text”確實也給了我名稱,但是那裡有很多數據,我希望有一種更簡單的方法

回覆: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);
);
使用「幫助 > 腳本索引」查看各種命令的工作原理。
獲得子報告清單後,您可以檢查每個報告以提取您想要的任何內容。 但請記住,報告樹可能很複雜,因此可能需要一些工作才能使其足夠健壯。