選擇 JSL 名稱包含代碼的特定列名稱包含腳本:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( "a" );
delviers 所有列,其中包含 a。 必須添加什麼代碼才能通過單擊或雙擊列錶框中的列來標記這些列之一?
回复:選擇 JSL 名稱包含代碼的特定列@ram_asra_gmail_ ,此鏈接是描述構建 ListBox 搜索和選擇界面的帖子。雖然一些討論使用 JMP14 中提供的 JMP 類對象,但第一篇文章描述了使用函數的接口:它適用於 JMP 13。
看https://community.jmp.com/t5/Discussions/Can-a-scripted-quot-widget-quot-be-converted-to-a-Class/mp/182529#M40268
原始帖子中附加的文件(TEB_LB_Widget.JSL、TestTEBSelector.jsl、TestLBFilter.jsl)在帖子中通過屏幕截圖進行了解釋。
回复:選擇 JSL 名稱包含代碼的特定列另外,我們可以對列表中的項目進行類似的過濾嗎? 謝謝拉姆回复:選擇 JSL 名稱包含代碼的特定列非常好的例子。 您是否也可以有類似的 jsl 用於列的行選擇器?
謝謝
內存
回复:選擇 JSL 名稱包含代碼的特定列完美的!
現在,JSL 正在按照預期運行。 這讓事情變得容易多了。 再次感謝。
回复:選擇 JSL 名稱包含代碼的特定列
JMP 13.2.1 具有 dt << Go To (col ref) ;我的沒有13.1 所以,這是一個測試用例。 如果有效,則附上修改後的腳本。它添加了 JSL 將窗口置於前面()和轉到()
Names Default to Here(1);
dt = open("$Sample_Data/Semiconductor Capability.jmp");
//select a column towards the end of the table
:PM_L1 << set selected(1);
wait(2);
dt << go to(:PM_L1);回复:選擇 JSL 名稱包含代碼的特定列你是對的。 你的代碼正在運行。 我的錯誤是圖標的命名。 我沒有使用空白。
圖標名稱更改為“列搜索”後,它可以完美運行。
本主題的最後一個問題是必須在腳本中添加哪些代碼才能不僅選擇找到的列,而且還可以轉到找到的列?
如果該列不在窗口的可見部分中,這將進一步改進整個過程。
回复:選擇 JSL 名稱包含代碼的特定列我不知道你說的“對話框關閉後(通過工具欄中的圖標) ”。
哪個圖標? 這是自定義腳本嗎?
當您有一個可以運行的腳本,但在不同的條件下無法運行時,大多數情況下這是一個範圍問題。例如,我為 JMP13 和 12 提供的第一個腳本有效,但是,如果當前數據表在對話框仍打開時發生更改,則語法 :colname 將不起作用。 這是我的計劃中的一個弱點。 但是,當我使用 char() 函數將 :colname 轉換為字符串“colname”並引用源表時,它是健壯的。
因此,無論您通過圖標或以下腳本執行什麼操作,都會產生範圍界定問題,而 JMP 版本無法解決該問題。因此,既然你還沒有分享你在做什麼,我只能指出一些需要尋找的東西:
- 如果您有其他引用 dt 的腳本,則腳本必須使用此處默認的名稱。
- 在再次單擊腳本按鈕之前,請確保原始目標表是當前表。 (菜單欄顯示表列表)。
我認為您可能遇到範圍問題或表鎖定問題。 祝你好運找到它。
這是一個屏幕截圖,我將腳本添加為插件。 我在做其他事情時多次使用它,在不同的表上使用它然後再次使用,它在 JMP 13 和 JMP 12 中的工作原理相同。這不是版本問題。

回复:選擇 JSL 名稱包含代碼的特定列再次感謝您的支持和耐心。
腳本更好,但正如已經提到的,仍然有可能得不到任何功能。 例如,在關閉對話框後(通過工具欄中的圖標),再次進行第二次搜索並選擇在同一數據表上運行。 也許 JMP 14 會讓情況有所改善。
回复:選擇 JSL 名稱包含代碼的特定列我發送的最後一個腳本(針對當前數據表進行了修改)適用於 JMP 12 和 JMP 13。 以下是 JMP 12 的屏幕截圖。 正如屏幕截圖所示,這是 JMP 示例數據表。
但是,如果當前數據表發生更改,該腳本將不起作用,因為 << 獲取選定列返回列引用列表,而不是表名稱。因此:如果當前數據表沒有該列,Chloroform 將返回錯誤。因此,為了使腳本更加健壯,我將下面的第 18 行更改為下面的 JSL。腳本附後。即使原始表不再是當前數據表,它也應該如此。 但是,如果腳本(此處)在對話框仍打開時更改 dt 的值,則會發生名稱衝突並導致問題。 或者如果在對話框仍然打開時關閉原始表,則會出現問題。
For(i=1, i<=nitems(_xx), i++, column(dt, char(_xx[i])) << set selected(0));

回复:選擇 JSL 名稱包含代碼的特定列JSL 現在正在與 satrting JSL 合作:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
如果 JSL 在 JMP 13.1.0 中被通用化(在圖標工具欄中使用它),如下所示:
Names Default To Here( 1 );
dt = Current Data Table();
我遇到了老問題=>沒有列選擇。 您知道這是否特定於 JMP 13.10.0?
如果是,請不要嘗試修復它。 我希望很快就能擁有 JMP 14。
回复:選擇 JSL 名稱包含代碼的特定列偉大的。 現在,JSL 正在使用 JMP 13.1。 我真的很感謝你和伊恩在解決這個問題上的耐心。
多謝
回复:選擇 JSL 名稱包含代碼的特定列對此感到抱歉。 我有 JMP 13.1
回复:選擇 JSL 名稱包含代碼的特定列該腳本適用於 JMP 12 和 JMP 13。 前面的腳本在早期版本的 JMP 中不起作用的原因是數據表消息清除列選擇和選擇列(列表)不可用。 在早期版本中,需要一次選擇和取消選擇一個列,因此需要進行以下更改。 我無法訪問 JMP 12 之前的任何版本。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fcb = Filter Col Selector( width( 250 ))
);
ib = (fcb<<PARENT></PARENT>
回复:選擇 JSL 名稱包含代碼的特定列您使用的是哪個版本的 JMP。
當我運行我發送的腳本時,會發生以下情況:
- 出現帶有過濾框的對話框
- 輸入A ,然後選擇年齡,年齡高亮顯示;選擇名稱,然後選擇名稱;按住 Ctrl 鍵並選擇年齡,兩者都會被選中。
- 刪除A並輸入埃伊然後選擇體重和身高,與上面的行為類似。
抱歉,它不適合您。我發送的腳本適用於 PC 上的 JMP 14.1。 它在 JMP 13.2.1 中不起作用,在我尋找替代方案之前,您使用的是哪個版本的 JMP?
每當您提出問題時,您都應該指定您正在使用的 JMP 版本。
回复:選擇 JSL 名稱包含代碼的特定列謝謝你的忍耐。 對此,我真的非常感激。 然而,JSL 仍然沒有按預期工作(見圖)。
目標是獲得與使用 Cols / Columns Viewer / Name Contains 獲得的功能相同的功能。 可以單擊搜索框中顯示的結果,並作為結果在原始數據表中選擇特定列。
如果有正確的 JSL 代碼可用,則整個列搜索/選擇過程可以執行得更快。

回复:選擇 JSL 名稱包含代碼的特定列嘗試這個
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fcb = Filter Col Selector( width( 250 ))
);
ib = (fcb<<PARENT></PARENT>回复:選擇 JSL 名稱包含代碼的特定列
我是不是錯過了什麼。 我無法訪問數據表中的選定列。
回复:選擇 JSL 名稱包含代碼的特定列弄清楚了:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fcb = Filter Col Selector( width( 250 ) )
);
ib = (fcb<<PARENT></PARENT>回复:選擇 JSL 名稱包含代碼的特定列感謝您的支持伊恩。 它還沒有按照我想要的方式工作。
我正在尋找 JSL 代碼,使用它可以按名稱 (part1) 一般搜索特定列,然後通過雙擊並在數據表中標記該列,從 part1 中選擇列錶框中所需的列。
一般搜索part1是用JSL代碼完成的:
Names Default To Here( 1 );
dt = Current Data Table();
New Window( "Column Search",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( );
可以像腳本索引中的代碼一樣為示例完成標記第 2 部分
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << Go to( :BP 12F );
它們必須如何組合才能查找、標記和轉到數據表中的列?
回复:選擇 JSL 名稱包含代碼的特定列伊恩,
這是一個相關的問題。 由於博主響應有 lb<< Name Contains(),我認為該請求是讓用戶輸入過濾器字段並且將選擇所有列。
所以我嘗試公開過濾器字段(顯示過濾器)。 我多次嘗試通過 JSL 啟用第二個菜單項,但均失敗。
有沒有一種方法可以啟用過濾器字段並配置過濾器? 我可以獲取 PopupBox 菜單計數和菜單文本,但不能獲取選擇。

回复:選擇 JSL 名稱包含代碼的特定列不確定我是否理解正確,但這就是你所追求的嗎?
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Make a FilterBoxSelector
New Window( "Filter Col Selector Example", lb = Filter Col Selector( width( 250 ) ));
// Define and set an 'action' script
actionScript =
Expr(
selected = lb << getSelected;
dt << clearColumnSelection;
dt << selectColumns(selected);
);
lb << setScript(actionScript);
// Try it out
lb << Name contains("sex");
Wait(3);
lb << Name contains("eight");回复:選擇 JSL 名稱包含代碼的特定列感謝您的回复。不幸的是,我沒有得到 JSL 更新的結果。 現在,我不知道為什麼。
我真正想要的是獲得類似於 JMP 中的 Cols / Columns Viewer ... / Name Contains ... 的類似行為。
一般來說,這可以通過腳本索引中提到的 JSL 代碼實現:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( );
但是,在運行搜索字符串後,我想通過雙擊在數據表中標記所需/選定的列。 這部分在腳本索引的 JSL 代碼中仍然缺失或無法工作。
回复:選擇 JSL 名稱包含代碼的特定列嘗試這個
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Filter Col Selector Example",
fontobj = lb = Filter Col Selector( width( 250 ) )
);
lb << Name contains( "a" );
//select name
_xx = lb << get items;
_idx = Contains(_xx, "name");
lb << set selected( _idx, 1); //or 0 to unselect要查看對象的可用消息,請選擇主菜單 > 腳本索引 > 顯示框 > FilterColSelector