If语句—表达式中的冲突

733
3.
跳到解决方案
06-25-2021 05:57 am
PanGIS
通过
定期撰稿人

你好!

我试图让事情在一个复杂的系统的形式工作。基于相同的功能服务,我有不同的形式。

其中2个涉及以下方面:

形式1.根据优先级定义状态:

状态= if(${优先}=“低”,“等待”,如果(${优先}=“中”,“等待”,如果(${优先}=‘高’,‘等待’,如果(${优先}=“至关重要的”,“等待”,如果(${优先}= '没有','关闭/拒绝”,“队列”)))))

表格2.一旦工作完成,这里的问题:“您想关闭案件吗?”将状态更改为“准备审查”

一旦状态改变,就得重新开业形式1并回答问题:“你接受这个解决方案吗?”必须回答是或否,状态将变为

yes =“确定”

no =返回'Pending'

为了实现,所以我在第一个if语句的末尾添加了一些东西来得到这个:

状态= if(${优先级}='低','待处理',if(${优先级}='中','待处理',if(${优先级}='高','待处理',if(${优先级}='紧急','待处理',if(${优先级}='无','关闭/拒绝',if(${接受}=‘是的’,‘定居’,if(${接受}=“不”,“等待”“队列”)))))))

语句中没有错误,但当我重新打开表单并设置“是”或“否”的动作问题时,无论如何状态都变成“未决”。

对我来说,很明显存在冲突,{Priority}设置被尊重,{Accepted}被忽略。

你知道我该怎么做吗?

我想我应该插入AND,我在尝试,但我总是出错。

谢谢!

标签(3)
0荣誉
1解决方案

接受的解决方案
DougBrowning
通过 MVP荣誉贡献者
MVP荣誉贡献者

这是一个困难的问题,因为有两个领域,其中一个胜过其他领域。所以我认为首先要看身份。这样你就可以省去很多“如果”,用“或”来简化。

我无法测试,但试试这个。

状态= if(${已接受}='是','已解决',如果(${优先级}='低'或${优先级}='中等'或${优先级}='高'或${优先级}='紧急'或${已接受}='否','待定',if(${优先级}='无','已关闭/拒绝','正在排队')))

在原帖子中查看解决方案

3回复
DougBrowning
通过 MVP荣誉贡献者
MVP荣誉贡献者

这是一个困难的问题,因为有两个领域,其中一个胜过其他领域。所以我认为首先要看身份。这样你就可以省去很多“如果”,用“或”来简化。

我无法测试,但试试这个。

状态= if(${已接受}='是','已解决',如果(${优先级}='低'或${优先级}='中等'或${优先级}='高'或${优先级}='紧急'或${已接受}='否','待定',if(${优先级}='无','已关闭/拒绝','正在排队')))

PanGIS
通过
定期撰稿人

神奇的!它工作。

我一有时间就会仔细复习。我需要更好地理解语句是如何工作的。

谢谢你! !

0荣誉
jcarlson
通过 MVP荣誉贡献者
MVP荣誉贡献者

您的用户使用的是现场应用程序还是web界面?您可以考虑使用第三种表单进行最终审批,然后使用Inbox过滤器来保持内容的组织性。当您的工作流有多个完全不同的步骤时,为每个步骤设置一个表单可能更有意义。

——乔什·卡尔森
肯德尔县GIS