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

如果我的數據表下有圖形

如何選擇該圖?
原因是我想獲取它們的X和Y列名稱
例如在上面圖片中標記的第一個圖形中,我要進行測試和test2

該圖已經在JMP中打開,我無法控制它們(在編輯創建它們的腳本方面)
腳本編寫回复: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);
);
使用“幫助>腳本編制索引”查看各種命令的工作方式。
有了子報告列表後,您可以檢查每個子報告以提取所需的任何內容。 但是請記住,報告樹可能很複雜,因此可能需要做一些工作才能使其足夠健壯。
回复:JSL-獲取開放圖X和Y值謝謝您的幫助
我現在想獲取XY值(紅色標記),但是我不確定如何訪問該值
我所能做的就是得到標題(用黃色標記的內容)。
我發現用“獲取XML”代替“獲取文本”確實也給了我名字,但是那裡有很多數據,我希望有一種更簡單的方法

回复:JSL-獲取開放圖X和Y值這是一種使用平台編寫的JSL(在本例中為Graph Builder)來查找元素的方法,我將其包括在內以說明以下內容:
- expr()
- 名稱expr()
- arg()
- 頭 ( )
- <<獲取可腳本化的對象(這將返回您從中獲取腳本的Graph Builder對象)
如果您以前沒有使用過它們,則需要在腳本指南中對其進行閱讀。 它們功能強大,但需要一些練習。
由於我沒有放入任何條件語句(您想這樣做...檢查窗口名稱等),因此請執行以下操作以確保腳本按以下說明工作。
1)關閉當前報告和圖表。
2)創建一個Graph Builder圖形。
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 );