Re:如何在Dashboard創建者腳本的Allocate函數中使用if語句?我想我們需要更多關於你正在做什麼的背景。我們需要查看使用If()的上下文?它是在新窗口()或JMP應用程序()?
你能發布一個更完整的腳本來證明這個問題嗎?
Re:如何在Dashboard創建者腳本的Allocate函數中使用if語句?是的,你是對的。這是我正在處理的腳本的簡化版本,專注於創建按鈕。按鈕位於第37-45行。使用If語句創建一個沒有按鈕的儀表板。
Re:如何在Dashboard創建者腳本的Allocate函數中使用if語句?嗨Kelly - 除非您只是更改字符串的值,否則我會警告不要編輯Dashboard的Allocate()塊內的內容。 更改結構肯定會導致無法正確執行的儀表板(或應用程序)。 當我在啟用了If()塊的情況下運行腳本時,我在日誌中看到錯誤消息:
期待:variable = object(); 2次訪問或評估'計劃'[...]
我不確定你要對條件框做什麼,但如果在應用程序和模塊腳本中放置所需的任何其他邏輯,Application Builder將最有效 - 這些腳本以普通JSL(或99%)執行所以,而JMPApp()中的其他代碼具有非常特定的語法。
Re:如何在Dashboard創建者腳本的Allocate函數中使用if語句?您可以有條件地確定在通過調用Button Box()創建按鈕之前單擊按鈕時計算的表達式。
bb expr = If( 1, Expr( ... ), 2, Expr( ... ) );
Button Box( "name", bb expr )
Re:如何在Dashboard創建者腳本的Allocate函數中使用if語句?我沒有在日誌中看到錯誤消息,可能是由於版本不同。我順便使用JMP 14.1.0。
我可能會遺漏一些東西,但我不確定為什麼你建議使用應用程序和模塊腳本而不是儀表板,因為它們是相同的,除了這行代碼:
儀表板模式(1),
我確實通過將條件語句放在JMP App()函數的Initialize()函數中找到了解決方法。 我必須創建一個按鈕,但我可以稍後決定是否讓它顯示在儀表板上。
Button1 << Visibility(If(1,“Visible”,“Hidden”));
謝謝!
Re:如何在Dashboard創建者腳本的Allocate函數中使用if語句?為了闡明我對應用程序和模塊腳本的評論 - Application Builder公開了與頂級應用程序和每個模塊相關聯的腳本。 當您關閉儀表板模式時,可以通過“腳本”選項卡訪問這些內容(文本仍顯示“儀表板”,因為文檔是在儀表板模式下啟動的):

此腳本將逐字保存,並將保留您所做的任何更改。 在編輯Initialize()腳本的示例中,您將注意到,雖然第一次運行腳本時按鈕可見性可能顯示正確,但如果再次從“儀表板”構建器保存腳本,則該行將更改為:
Button1 << Visibility("Visible");
如果您想使用比If(1)更複雜的表達式,這可能會失去您的預期行為。 每次保存腳本時,Allocate(),Organize()和Initialize()部分中的所有內容都是從頭開始生成的,如果使用構建器界面更改然後保存腳本,則不會保留自定義項。
如何在Dashboard創建者腳本的Allocate功能中使用if語句?我的儀表板使用按鈕框()創建按鈕就好了。但是,當我使用if語句時,它不再起作用。這是If語句:
如果(1,Button1 = Button Box());如果(1,Button2 = Button Box());
一切都彙編得很好,我的儀表板出現了,但這些按鈕丟失了。
謝謝您的幫助