如何從下拉列表中獲取函數參數以在繪圖中使用相同的參數我正在使用組合框創建一個下拉列表。這個想法是從該列表中選擇一個特定的項目/選項應該創建一個相應的條形圖。
在所附代碼中,Tool_time_wf 是應該使用組合框中的參數/提示/設備名稱[變量選擇]來創建繪圖的函數。 組合框 myListbox 中的每個項目/選項已經是數據表(附後)中的列名稱,應根據該列名稱生成條形圖,即周[數據表中的第 1 列] 與設備名稱/列名稱[第 2 列和從數據表開始]。
理想情況下,用戶從下拉列表中選擇設備名稱/列名稱,並且數據表中存在相同的設備名稱作為列名稱(參見附加的無標題 90 數據表),該名稱將繪製為周與列名稱/設備名稱。雖然這裡所附的數據表只顯示了2個列名或者2個設備名。但實際的表將有 100 個列名稱/100 個設備名稱。 所以我需要一個函數(這就是我現在被困的地方)這將使用從 100 個設備名稱/列名稱的下拉列表中進行的選擇來創建繪圖。
任何幫助,將不勝感激。此致。
大規模定制回复:如何從下拉列表中獲取函數參數以在繪圖中使用相同的參數再次感謝你。欣賞它。回复:如何從下拉列表中獲取函數參數以在繪圖中使用相同的參數在上面的代碼中,Expr() 基本上是代碼的持有者,直到代碼中處理了指向 Expr() 的指針後才對其進行處理。 Eval() 是一個函數,它向 JMP 發出指令,使用 Eval() 處理代碼並將代碼處理的結果返回給 JSL。回复:如何從下拉列表中獲取函數參數以在繪圖中使用相同的參數非常感謝你,特克斯尼爾森。您能否詳細說明一下 Tool_time_wf 函數是如何工作的? 我對 expr 和 eval 的工作原理不是 100% 清楚。問候。
回复:如何從下拉列表中獲取函數參數以在繪圖中使用相同的參數您的腳本存在一些問題......都是小問題
- 您的新窗口是代碼的控制部分,需要位於要調用的所有代碼之後。也就是說,在 JMP 讀取 doListChoice 之前,您不能調用 doListChoice。JSL 是一個解釋器,它從第一行開始讀取代碼,然後跟隨代碼的執行位置。
- 您的代碼結構方式(新窗口位於頂部)意味著它始終使用上次運行的代碼。除非另有說明,否則 JMP 會保留每次運行的代碼。我在您的代碼中放置了 Clear Globals() 以確保每次運行時都清除所有內容。
- 您錯誤地引用了 xvar 和 yvar。我稍微改變了代碼以使其工作。
- 代碼對於要處理哪個數據表感到困惑。我添加了 dtNames 和 dt 以允許代碼指向數據以使其更清晰

Clear Symbols();
Names Default To Here( 1 );
//current data table that has data on individual equipment based on each week
filepath="C:\temp_files\jmp\tool time vs CW\#jmp-script\for jmp SAS community QA\Untitled 90.jmp";
dtNames = Open(filepath,invisible);
//equipment list (will go upto 100 [equip 1 , equip 2 ,..........equip 100], only shows 2 here for example)
filepath="C:\temp_files\jmp\tool time vs CW\#jmp-script\for jmp SAS community QA\Equipment Name-wf.jmp";
dt = Open(filepath,invisible);
//dtNames = Data Table( "Equipment Name-wf" );
//dt = Data Table( "Untitled 90 (1)" );
doListChoice = Expr(
choice = myListbox << getSelected; // choosing the equipment name from the drop down list
Tool_time_wf( "week", choice ); //does not work
);
//Tool_time_wf(week column, tool name in string quotes works);
Tool_time_wf = Function( {xvar, yvar},
bivExpr = dt << Graph Builder(
Size( 534, 464 ),
Show Control Panel( 0 ),
Variables( X( Eval( xvar ) ), Y( Eval( yvar ) ) ),
Elements( Bar( X, Y ) )
)
);
myList = Column( Data Table( "Equipment Name-wf" ), 1 ) << Get Values;
myListbox = Combo Box( myList, doListChoice );
//@@//showing drop down -works-st
New Window( "Show List",
Text Box(
" Please select a TOOL/MACHINE from the drop down menu:",
<<FONT color=""></FONT>回复:如何從下拉列表中獲取函數參數以在繪圖中使用相同的參數你好,txnelson,很抱歉沒有讓詢問更清楚。
用戶應選擇設備名稱(裝備 1 或裝備 2 ..... 或裝備 100),而不是從下拉列表中選擇週數。
對於將生成下拉列表的列表/表格,請參閱'設備名稱-wf' jmp表。
一旦從下拉列表中選擇設備名稱(通過“設備名稱-wf”生成);該功能應使用該設備名稱;進入主數據表“Untitled 90” (其中列出了設備的每週數據);然後繪製所需的周與裝備#圖,如附件所示“所需裝備與週圖”圖像文件。
如果您還有其他問題/疑慮,請告訴我。感謝您查看這個。我再次上傳了帶有附加註釋“snippet v2”的 .jsl 代碼。
回复:如何從下拉列表中獲取函數參數以在繪圖中使用相同的參數我需要更多幫助來理解您想要做什麼。 如果用戶從下拉列表中選擇了“W06”,您能否生成您希望顯示的圖表?