我有一点挑战。我有一个报告,我声明了一个名为 Department 的参数,其默认值如下:
所有部门,项目,现场服务,车间,保修,海事,合同,制造。
每个部门都有数据库条目,我将其分组到部门,例如 现场服务有[“JOB - EXT”,“JOB-AFMEXP”,“JOB-LUB / S”,“JOB-NBCMTU”,“JOB-ABB-AS”]
我还启用了“允许多个值”复选框。
在我的选择专家中,我有:
{command.Job Posting Group} in
switch(
{?Department} = "All Departments",["","JOB - EXT", "JOB-AFMEXP", "JOB-LUB/S", "JOB- NBCMTU","JOB-ABB-AS","JOB-CANPJB",
"JOB-INSTAL","JOB-CUMNS", "JOB-W/SHOP", "JOB-WS/GEN","JOB-WTY","JOB-MAR","JOB-S/AGR", "RENTAL"],
{?Department} = "Project",["JOB-INSTAL"],
{?Department} = "Field Service", ["JOB - EXT", "JOB-AFMEXP", "JOB-LUB/S", "JOB-NBCMTU","JOB-ABB-AS"],
{?Department} = "Workshop", ["JOB-CUMNS", "JOB-W/SHOP", "JOB-WS/GEN"],
{?Department} = "Warranty",["JOB-WTY"],
{?Department} = "Marine",["JOB-MAR"],
{?Department} = "Contract",["JOB-S/AGR"],
{?Department} = "Manufacturing",["JOB-CANPJB"]
)
问题在于,当我测试它(使用CR10或在网络上),并且我选择多个值时,事物不会显示多个值的值。它仅在我选择一个部门时才有效。 我该怎么办?
答案 0 :(得分:1)
如果{?Department}是一个多值参数,它的值本身就是一个数组。使用多个值,您不能再像{?Department} =“Project”那样进行检查,因为{?Department}在这种情况下是一个非脚本数组。相反,尝试使用类似"Project" in {?Department}
等的开关布尔表达式。
编辑:实际上,还有另一个问题:无论如何,开关都不能用于你想要做的事情,因为它会在第一个真实表达式停止。您需要做的是首先构建一个包含所有可能的部门描述符的数组,然后执行{command.Job Posting Group} in YOUR_DEPARTMENT_ARRAY
答案 1 :(得分:0)
我辛苦劳作了一段时间b4我提出了这个解决方案(感谢一些朋友和Ryan让我记住开关无法正常工作。):
我首先创建了一个名为{?Department}的参数字段,然后编写了一个名为{@Dept}的函数,如下所示:
if {command.Job Posting Group} = "JOB-WTY" then
"Warranty"
else
if {command.Job Posting Group} = "JOB-MAR" then
"Marine"
else
if {command.Job Posting Group} in ["JOB-CUMNS", "JOB-W/SHOP", "JOB-WS/GEN"] then
"Workshop"
else//etc.
我没有在公式中添加“All Dept”选项。因为我会在这样的选择专家中以编程方式执行此操作:
(
(
{?Department} <> "All Departments" and {@Dept} = {?Department}
) or
{?Department} = "All Departments"
)