我有一個 JSL 用於創建一個視窗來顯示許多圖形生成器,由於我使用了where 語言來過濾數據,新視窗將自動建立一個文字方塊(" 其中:CID == a[1][g] & : VARABLE == a[2][g] & :WNDOW==a[3][g] & :SATISTIC==a[4][g] & :CLLECTION_NAME==a[5][g]"),我想要設定此文字方塊屬性“折疊”,您能給我一個解決方案嗎,非常感謝。
資料表( "FSS" ):RUN_START_DATE << 資料型別(數值,格式( "yyyymmdd", 8 ),輸入格式( "yyyymmdd" )) << 設定建模類型( "連續" );
總結(a=by(:CED,:VARABLE,:WNDOW,:SATISTIC,:CLLECTION_NAME),b=min(:LOWER_CRITICAL),c=max(:UPPER_CRITICAL));
n=nitems(b);
FDCD=新視窗("FDC", vlb=v 列錶框());
對於( i = 1, i <= n, i=i+j-1,
hlb= h 列錶框(
對於(j=1,j<=4,j++,
g=i+j-1;
圖形 = 圖形產生器(
尺寸(400、300)、
顯示控制面板( 0 ),
顯示標題( 0 ),
其中( :CID == a[1][g] & :VARABLE == a[2][g] & :WNDOW==a[3][g] & :SATISTIC==a[4][g] & :CLLECTION_NAME==a[5][g]),
顯示位置( 0 ),
變數(
X(:RUN_START_DATE),
Y(:值),
X 組(:實體),
覆蓋(:食譜),
),
元素( 點( X, Y, 圖例( 10 ) ), 平滑器( X, Y, 圖例( 11 ) ) ),
發送至報告(
Dispatch({},"圖形產生器",OutlineBox,{設定標題( a[1][g]||"|"||a[2][g]||"|"||a[3][ g ]||"|"||a[4][g] ), 影像導出顯示(正常)}),
Dispatch({},"RUN_START_DATE",ScaleBox,{ Interval( "Day" ),Inc( 3 ), Minor Ticks( 1 )}),
Dispatch({},"VALUE",ScaleBox,{//Max(c[i]+(c[i]-b[i])*0.1,:VALUE*1.1), Min( b[i]+(c [i]-b[i])*0.1,:值*0.9),
新增參考線( c[g], "Dashed", "Red", "UCL", 1 ),
新增參考線( b[g], "Dashed", "Red", "LCL", 1 )})
)
);
);
);
病毒磅<
);
很多舊帖子都有解決方案。我的首選方法是使用 XPath
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
nw = New Window("",
V List Box(
gb = dt << Graph Builder(
Show Control Panel(0),
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11))),
Where(:sex == "M")
),
gb = dt << Graph Builder(
Show Control Panel(0),
Variables(X(:weight), Y(:height), Overlay(:sex)),
Elements(Points(X, Y, Legend(9)), Line Of Fit(X, Y, Legend(11))),
Where(:sex == "F")
)
)
);
wait(1);
where_teb = nw << XPath("//TextBox[contains(text(), 'Where(')]");
where_teb << Visibility("Collapse");
如果您知道哪一列用於過濾或正在過濾哪些值,則可以使 XPath 更加健壯
我知道這是一篇舊帖子,但我嘗試用這個方法從我生成的控製圖中移除“Where”子句,但我的 XPath 表達式似乎總是返回一個空列表,即使我縮小搜索範圍,只搜索沒有篩選條件的 TextBox 對像也是如此。我的腳本結構如下:我有一個堆疊資料表。首先,我建立一個視窗並插入一個 VListBox。
CtrlChart = New Window("Trend Charts",
vlbreport = V List Box("Trend Review");
);
然後,我使用循環將控制圖作為單獨的 V 列錶框附加到 vlbreport 中。
vlbreport << Append(
V List Box(
Control Chart Builder( **Control chart setting here) ); );
然後,在執行等待命令以確保視窗完全填充後,我嘗試使用 XPath 簡單地返回所有文字框,但我一直找不到任何內容。
allbox = CtrlChart << XPath("//Textbox");
目前,allbox 回傳的是 {}。如果我使用 CtrlChart 的「顯示樹狀結構」功能,可以看到完整的結構,包括其中的所有 TextBox 對象,但它就是無法選取任何內容。您知道這是為什麼嗎?我喜歡使用 XPath 來隔離 Where 框的想法,因為它是一個真正動態的解決方案,可以應用於所有採用這種格式的腳本。但是,我對 XPath 幾乎一無所知。我的腳本知識主要來自大量的反覆試驗、Google搜尋和腳本指南。
XPath 中的是 Text Box,不是 Text Box (大寫 B)。
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Semiconductor Capability.jmp");
cols = {"NPN1", "PNP1", "PNP2"};
nw = New Window("Trend Charts",
vlb = V List Box()
);
For Each({colname}, cols,
vlb << Append(
ccb = dt << Control Chart Builder(
Show Limit Summaries(0),
Show Capability(0),
Variables(Y(Eval(colname))),
Show Control Panel(0),
Where(:Site == 1)
)
);
);
Show(nw << XPath("//Textbox[contains(text(), 'Where(')]"));
Show(nw << XPath("//TextBox[contains(text(), 'Where(')]"));
這麼簡單的疏忽,謝謝你指出!現在一切正常了,我真是太高興了。把圖表匯出到PPT的時候,那些文字方塊尤其煩人。 JMP真應該加個隱藏它們的設置,這樣就不用這種變通方法了。