用户界面你好,
我制作了一个 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);
);