用戶界面你好,
我製作了一個 UI,並希望對其進行一些更改。 如下所示:
我喜歡將“確定”和“取消”移動到窗口底部,並在“選擇產品名稱”中僅選擇產品(合併左右)。 還想知道如何選擇這些選項並將它們放入變量中以用於進一步的腳本編寫。
我附上了實際的腳本。
非常感謝你的幫助。

回复:用戶界面非常感謝你。
回复:用戶界面您可以在 OK 按鈕的代碼中捕獲選定的產品。
okb = button box("OK",
one_product = rb1 << get selected;
),回复:用戶界面我相信,如果您理解所提供的代碼,您應該能夠擴展 UI 以自行捕獲變量名稱。
回复:用戶界面謝謝。 它現在工作正常。 用戶對產品名稱的選擇呢? 如何將其捕獲為變量名並在窗口關閉後使用它。
我感謝您的幫助。 謝謝
回复:用戶界面由於您使用的是模態窗口,因此您需要將組命令移動到新窗口()中:
)
rb1 << group(rb2),
);
回复:用戶界面問題是您使用的是模態窗口。在您關閉窗口之前,我不會處理對單選框進行分組的那一行。
您可以這樣做並保留模態窗口:
panel box("Choose Product:",
hlist box(
rb1 = radio box(list1),
rb2 = radio box(list2)
),
rb1 << group(rb2);
),
回复:用戶界面你好,
謝謝。 您的腳本按預期工作。 但是當我將它與“選擇產品”頂部的工作人員結合使用時,我看到下圖:

我附上了修改後的腳本。 謝謝你的幫助。
回复:用戶界面哈哈,他們在霍格沃茨教會了我很多關於 JSL 的知識。
但真正的秘訣是腳本索引。一直使用它。
回复:用戶界面
@pmroz寫道:
如果您使用 << 組方法,您可以將單選框並排放置,充當一個單選框,即只能選擇一個選項。這是一個例子:
list1 = {"AAA", "BBB", "CCC", "DDD"};
list2 = {"XXX", "YYY", "ZZZ"};
nw = new window("Combine Radio boxen",
panel box("Choose Product:",
hlist box(
rb1 = radio box(list1),
rb2 = radio box(list2)
),
),
panel box("Actions",
hlist box(
okb = button box("OK",
one_product = rb1 << get selected;
print("Product Selected: " || one_product);
nw << close window;
),
canb = button box("Cancel",
nw << close window;
),
),
)
);
rb1 << group(rb2);
伙計,那裡有一些巫術。不錯的小費!謝謝。
回复:用戶界面如果您使用 << 組方法,您可以將單選框並排放置,充當一個單選框,即只能選擇一個選項。這是一個例子:
list1 = {"AAA", "BBB", "CCC", "DDD"};
list2 = {"XXX", "YYY", "ZZZ"};
nw = new window("Combine Radio boxen",
panel box("Choose Product:",
hlist box(
rb1 = radio box(list1),
rb2 = radio box(list2)
),
),
panel box("Actions",
hlist box(
okb = button box("OK",
one_product = rb1 << get selected;
print("Product Selected: " || one_product);
nw << close window;
),
canb = button box("Cancel",
nw << close window;
),
),
)
);
rb1 << group(rb2);

回复:用戶界面我建議的一件事是將設置 str1 和 str2 格式的行移到 New Window() 函數之外。您可以先在 New Window() 中定義所有的顯示框,然後修改這些顯示框。這將使您的代碼更清晰一些。
接下來,您可以將 V 列錶框右括號移動到顯示框列表的末尾。包含確定和取消按鈕的 H 列錶框嵌套在包含帶有單選按鈕的面板框的同一個 H 列錶框中。只需將包含 OK 和 Cancel 的 H 列錶框移到其當前父 H 列錶框容器之外,並使其成為 V 列錶框父容器內該 H 列錶框的同級。這會將這些按鈕移到底部。
在單選按鈕字段中有多個列很棘手,我不確定是否值得這麼麻煩。您將像現在一樣需要其中的 2 個(儘管我會將它們放在同一個面板盒中而不是單獨的面板盒中)。問題是你不能有一個沒有被選中的單選框。因此,不可能清除一個單選框,從而使兩個單選框之間只有 1 個選擇。考慮使用列錶框,這樣您可以使用滾動條保持緊湊並設置要顯示的行數。
這是我的建議的結果:
Clear Log();
// Time filtering //
defuplim = Today();
deflowlim = Today() - In Days( 150 );
ww = New Window( "Pick Your Dates in yyyy-mm-dd format",
//<<MODAL></MODAL>lb << Set Max Selected(1);
要從用戶那裡訪問顯示框中的信息,您只需為執行此操作的 OK 按鈕定義一個函數。請參閱幫助菜單中的腳本索引。如果您搜索“號碼編輯框”並將下拉菜單從“所有類別”更改為“顯示框”,您可以看到可以發送到號碼編輯框的所有消息。其中之一是“獲取”。每個帶有用戶輸入的顯示框都有類似的消息。
OK 按鈕的功能可能如下所示:
Ok_btn << Set Script(On OK());
On OK = Function({},
start_date = str1 << Get;
end_date = str2 << Get;
Print(start_date, end_date);
);